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!!!
  • 相关阅读:
    如何使用angularjs实现文本框设置值
    如何使用angularjs实现文本框获取焦点
    electron的安装
    linux中升级jdk的方法
    linux中添加开机自启服务的方法
    liunx系统安装tomcat的方法
    liunx系统安装jdk的方法
    常用linux命令
    ResourceBundle的使用
    查看Linux系统版本的命令
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12933503.html
Copyright © 2011-2022 走看看