zoukankan      html  css  js  c++  java
  • java集合 Vector类 Stack类 Queue接口

     

     

     -----------------------------------------------------------------------------

     Stack类 栈 ;继承 Vector

    1.java.util包

    2.构造方法 只有一个无参数的

    3.除了继承自Vector类的方法外还有几个特殊的方法

      push()将某一个元素压入栈顶(同add())

      E=pop()将某一个元素从栈顶取出并删掉(E=remove())

      E=peek()查看栈顶的一个元素 不删除(get());

      boolean = empty()判断栈内元素是否为空(isEmpty());

      int=search() 查找给定的元素在栈中的位置(indexOf())

    4.使用场景 中国象棋 悔棋 

      栈中存储每一次操作的步骤

      撤销

     --------------------------------------------------------------------------------------------------------------------

    Queue接口

    1.java.util      通常使用子类 LinkedList  ArrayDeque

    2.通常无参数构造方法创建

    3.一般方法

      boolean = offer(E e)   (类似add())

      element()  (类似get())

      remove()

      E=poll(); (相当于remove())

      E=peek(); (相当于element方法)

    4.使用场景  双11秒杀

      所有进入秒杀系统的人存入队列

     

     -------------------------------------------------------------------------------------------------------------------

    LinkedList类

    是List的子类   是Queue的子类

    1.java.util包  (类似于之前我们封装过的双向链表)

    2.底层使用双向链表的数据结构形式来存储

      适合于插入或删除  不适合遍历轮询

    3.构建对象

      无参数构造方法  带参数的构造方法(collection)

    4.常用的方法

      增删改查  add()  remove()  set()  get()  size()        offer  poll  peek

      addAll()  addFist()  addLast()  clear()  contains()   element()

      getFirst()  getLast()    

    import java.util.*;
    
    public class Test0521{
    	public static void main(String[] args){
    		
    		ArrayList<String> a=new ArrayList<String>();
    		for(int i=1;i<=100000;i++){
    			//a.add("a");//追加7ms
    			a.add(0,"a");//插入元素 //1150ms //扩容并搬元素到新数组
    		}
    		long time1=System.currentTimeMillis();
    		//for(String v:a){			
    		//}//取元素 3ms
    		for(int i=0;i<100000;i++);{
    			a.remove(0);
    		}//1ms
    		long time2=System.currentTimeMillis();		
    		System.out.println(time2-time1);
    		
    		/*
    		LinkedList<String> b=new LinkedList<String>();
    		for(int i=1;i<=100000;i++){
    			//b.addLast("a");//6ms
    			b.addFirst("a");//6ms
    		}
    		long time1=System.currentTimeMillis();
    		
    		for(int i=0;i<b.size();i++){
    			b.get(i);//4323ms
    		}
    		
    		for(String v:b){
    		}//5ms
    		
    		for(int i=0;i<b.size();i++){
    			b.remove(0);//3ms
    		}
    		long time2=System.currentTimeMillis();
    		System.out.println(time2 - time1);
    		*/
    		
    	}
    }
    

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    读书笔记4瞬时相应网站的高性能架构
    读书笔记3大型网站的架构要素
    读书笔记2大型网站的架构模式
    可用的rtmp卫视直播地址
    html中的特殊符号表示法
    深入理解JS原型链与继承
    css3 media媒体查询器用法总结
    HTML条件注释用法诠释
    jQuery中$符号冲突问题 (转载)
    JS 输出对象的属性以及方法[转载]
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12933503.html
Copyright © 2011-2022 走看看