import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; public class ListDemo {
//jdk8
public static void main(String[] args){
// add("ArrayList",50000);//11
// add("LinkedList",50000);//8
// add("ArrayList",1000000);//81
// add("LinkedList",1000000);//132 // addFirst("ArrayList",5000);//7
// addFirst("LinkedList",5000);//2
// addFirst("ArrayList",50000);//160
// addFirst("LinkedList",50000);//5 // remove("ArrayList",5000);//1
// remove("LinkedList",5000);//2
// remove("ArrayList",1000000);//2
// remove("LinkedList",1000000);//15
// // removeFirst("ArrayList",5000);//5
// removeFirst("LinkedList",5000);//1
// removeFirst("ArrayList",100000);//795
// removeFirst("LinkedList",100000);//2 // removeMiddle("ArrayList",5000);//3
// removeMiddle("LinkedList",5000);//23
// removeMiddle("ArrayList",100000);//446
// removeMiddle("LinkedList",100000);//5637
}
public static void add(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}else {
LinkedList<Object> list = new LinkedList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void addFirst(String s,int a){
if (s.equals("ArrayList")){
ArrayList<Object> list = new ArrayList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}else {
LinkedList<Object> list = new LinkedList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.addFirst(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void remove(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.remove(list.size()-1);
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.removeLast();
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void removeFirst(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.remove(0);
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.removeFirst();
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void removeMiddle(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
while (list.size()>0){
list.remove(list.size()>>1);//右移/2,左移*2
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
while (list.size()>0){
list.remove(list.size()>>1);//右移/2,左移*2
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
}

java--ArrayList,LinkedList应用比较的更多相关文章

  1. Java ArrayList、Vector和LinkedList等的差别与用法(转)

    Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...

  2. java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)

    一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...

  3. [Java]ArrayList、LinkedList、Vector、Stack的比较

    一.介绍 先回顾一下List的框架图 由图中的继承关系,可以知道,ArrayList.LinkedList.Vector.Stack都是List的四个实现类. AbstractList是一个抽象类,它 ...

  4. Java集合--ArrayList,LinkedList性能分析

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...

  5. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  6. 浅谈Java中linkedlist和arraylist区别

    在Java中,关于集合框架有这样一个体系结构: 其主要由两个接口派生而出:Collection和Map,然后再衍生出各自的一些实现类(比如Collection接口又被继承与Set和List接口,而他们 ...

  7. Java ArrayList和LinkedList

    目录 集合的概念 集合体系结构 常用list集合 list集合的特点 ArrayList LinkedList 创建对象 常用方法 遍历 ArrayList和LinkedList的区别 集合的概念 ​ ...

  8. java.util.ArrayList,java.util.LinkedList,java.util.Vector的区别,使用场合.

    下图是Collection的类继承图 从图中可以看出:Vector.ArrayList.LinkedList这三者都实现了List 接口.所有使用方式也很相似,主要区别在于实现方式的不同,所以对不同的 ...

  9. java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?

    Vector,ArrayList,LinkedList均为线性的数据结构,但是从现实方式与应用场景中又存在差别. 1 底层实现方式 ArrayList内部数组来实现,LinkedList内部采用双向链 ...

  10. Java Collection - ArrayList & LinkedList

    总结 ref: https://blog.csdn.net/qq_32679815/article/details/78907437 1-ArrayList是实现了基于动态数组的数据结构,Linked ...

随机推荐

  1. Win7 ODBC驱动 Excel (转)

    “控制面板-管理工具-数据源(ODBC)”,打开“ODBC数据源管理器”窗口,然后“添加”,打开“创建新数据源”的窗口,最后选择Microsoft Access Driver(*.mdb)选项,往后等 ...

  2. tensorflow函数介绍(1)

    tensorflow中的tensor表示一种数据结构,而flow则表现为一种计算模型,两者合起来就是通过计算图的形式来进行计算表述,其每个计算都是计算图上的一个节点,节点间的边表示了计算之间的依赖关系 ...

  3. 【Dart学习】--之Runes与Symbols相关方法总结

    一,Runes 在Dart中,Runes代表字符串的UTF-32字符集, 另一种Strings Unicode为每一个字符.标点符号.表情符号等都定义了 一个唯一的数值 由于Dart字符串是UTF-1 ...

  4. Shorten IPv6 Address

    题目链接 题意:转换一个128位的二进制串,变成16进制,并且格式为x:x:x:x:x:x:x:x然后多个相邻的0变成::,且只有一个::,求变成的字典序最小且最短的字符串. 思路:大水题,但是就是一 ...

  5. Minimal Power of Prime

    题目链接 题意:输入n,求所有质因子幂的最小值.n奇大无比. 思路:先对n所有n开五次方根的质因子约完,然后如果没有除尽的话,因子最多也就4个了,所以幂数大于1的情况有p1^4,p1^3, p1^2  ...

  6. 创建Spring Boot 工程

    先在eclipse中安装spring -tool -suite插件,然后根据以下步骤可以创建   1.新建Spring Starter Project 2.Packaging 选择 jar 3.勾选W ...

  7. 北风设计模式课程---外观模式(Facade)总结

    北风设计模式课程---外观模式(Facade)总结 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装备 ...

  8. English-spoken

    May i come in? 我可以进来么? May I introduce myself? 我能做个自我介绍么? I'm sorry I didn't hear that clearly. May ...

  9. maven 国内加速,修改镜像源

    为什么慢 由于默认情况下执行 mvn 各种命令是去国外的 mvn 官方镜像源获取需要安装的具体软件信息,所以在不使用代理.不翻墙的情况下,从国内访问国外服务器的速度相对比较慢 如何修改镜像源 阿里旗下 ...

  10. java 异常处理try+catch

    在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...