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!!!
  • 相关阅读:
    windows环境变量
    软件工程的一般过程和需要的文档
    linux find 命令查找文件和文件夹
    mybatis中mapUnderscoreToCamelCase自动驼峰命名转换
    人体湿气重有哪些表现? 细数湿气重的危害
    MySQL升级后1728错误解决方案
    linux清理Java环境
    无线投屏PC投电视
    report studio 交叉表占比
    Cognos审核模块的导入与设置
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12933503.html
Copyright © 2011-2022 走看看