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. uCOS的软件定时器、uCOS时钟节拍和滴答定时器的关系

    uCOS2.81后的版本中有软件定时器的概念,如果要开启定时器任务,需要在OS_CFG.H文件中 #define  OS_TMR_EN                 1 软件定时器其实跟硬件中断是相 ...

  2. wraps的补充

    # import time# def index(name):# '''index函数'''# time.sleep(1)# print('Welcome %s to China'%name)# re ...

  3. JavaScript之BOM+DOM

    BOM 浏览器对象模型, 用于把浏览器相关的组件封装为对象进行操作. BOM是包含了DOM的. window对象 弹出框相关 确认: 取消: 与打开关闭window有关的方法 定时器相关 暂停选老婆 ...

  4. Vue学习笔记-作用域插槽

    有时候我们希望子组件的内容由父组件决定如何展示,这个时候子组件的数据父组件并不能访问到,而作用域插槽的关键之处就在于,父组件能接收来自子组件的slot传递过来的参数. <div id=" ...

  5. WRNavigationBar 使用记录

    最近在做一个导航栏透明度渐变的效果,发现 WRNavigationBar库很好用,一开始导入到项目,发现导航tiltle颜色一直是黑色的,无论怎么用系统方法改都改不了.后来发现原来库里面有一个方法可以 ...

  6. [CSP-S模拟测试]:string(文艺平衡树)

    题目传送门(内部题60) 输入格式 第一行三个数$n,m,k$.第二行一个长度为$n$的串.接下来$m$行每行两个数$L_i$和$R_i$. 输出格式 一个串,表示字典序第$k$小的合法的能被填出的串 ...

  7. 如何保留小数点后N位?

    2014年10月17日09:48:39 在做项目中遇到的,要把想显示的数据进行规定小数位的保留,下面写一下用过的方法: 1. BigDecimal 方法(我做项目的时候用的方法) 代码: java.m ...

  8. 快捷键中文版使用说明之Eclipse快捷键大全

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行  Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt ...

  9. 阿里云二级域名解析指向服务器另一台主机— —Nginx

    这是在一台阿里云服务器没有任何域名,但是配置高,因此想借用另一台阿里云服务器(配置较低)已备案的域名 跳转到这台配置高的服务器,那么使用nginx反向代理 server { listen 80; se ...

  10. mootools使用Request.send()数据时刷新整个页面

    今天使用mootools做ajax登录时使用Request().send()数据时老是刷新整个页面,换成Requesr.JSON()也不行,弄了好长时间,很郁闷啊,最后终于发现onSuccess:fu ...