package com.uncle.myutil.testlist;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
/**
* Queue接口
* 1.java.util 通常子类LinkedList ArrayDeque
* 2.通常无参数构造方法创建
* 3.一般方法
* add()
* element()---->get()
* remove()
* boolean = offer(E e);//相当于add 不会抛出异常
* E = peek();//相当于 element方法
* E = poll();剪短// 相当于remove()
* 4.双十一零点秒杀
* 所有进入秒杀系统的人存入队列
*
* LinkedList类
* 1.java.util包 自己封装过LinkedBox 内部类Node<T>对象(节点 prev item next)
* 2.底层使用双向链表的数据结构形式来存储
* 适合于插入或删除 不适合遍历轮询
* 3.构建对象
* 无参数构造方法 带参数的构造方法(collection)
* 4.常用的方法
* 增删改查 add() remove() set() get() size() offer poll peek
* 手册中提供的其他常用方法
* addAll addFist addLast() clear() contains()
* element() getFirst() getLast() indexOf() lastIndex()
* .....
* 5.插入删除的特性是否像想的那样
* 对比ArrayList Linked
*
*/
public class TestLinked {
public static void main(String[] args){
//LinkedList 200000次为例
//向后追加元素 4
//向前插入元素 4
//遍历轮询元素 4
LinkedList<String> linkeList = new LinkedList<String>();
for(int i=1;i<=200000;i++){
linkeList.addFirst("a");
}
long time1 = System.currentTimeMillis();
for(int i=1;i<=200000;i++){
linkeList.removeFirst();
}
long time2 = System.currentTimeMillis();
System.out.println(time2-time1);
//ArrayList 200000次为例
//向后追加元素5
//向前插入元素4005
//遍历轮询元素3
//删除元素时间4037
// ArrayList<String> arrayList = new ArrayList<String>();
// for(int i=1;i<=200000;i++){
// arrayList.add("a");
// }//有200000个
// long time1 = System.currentTimeMillis();
// for(int i=0;i<200000;i++){
// arrayList.remove(0);
// }
// long time2 = System.currentTimeMillis();
// System.out.println("arraylist向前插入元素时间"+(time2-time1));
}
}
linkedlist和Queue
猜你喜欢
转载自blog.csdn.net/m0_51945027/article/details/112843449
今日推荐
周排行