java集合类List
1.List
Vector:线程安全的。
ArrayList:适合查找与顺序添加。
LinkedList:适合随机插入与删除。
1.1ArrayList与LinkedList的add添加
1.1.1ArrayList与LinkedList的顺序add添加
代码:
List<String> linkedList = new LinkedList<>();
List<String> arrayList = new ArrayList<>(); Long startTime = System.currentTimeMillis();
for (int i=; i<; i++) {
linkedList.add("linkedList"+i);
}
Long endTime = System.currentTimeMillis();
System.out.println("linkedList:"+(endTime-startTime)); startTime=0L;endTime=0L; startTime = System.currentTimeMillis();
for (int i=;i<; i++) {
arrayList.add("arrayList"+i);
}
endTime=System.currentTimeMillis();
System.out.println("arrayList:"+(endTime-startTime));
运行结果:
linkedList:340ms
arrayList:812ms
可以看出顺序添加ArrayList比LinkedList快
1.1.2ArrayList与LinkedList的add插入添加
List<String> linkedList = new LinkedList<>();
List<String> arrayList = new ArrayList<>(); Long startTime = System.currentTimeMillis(); for (int i=0;i<1000000; i++) {
arrayList.add(0,"arrayList"+i);
}
Long endTime=System.currentTimeMillis();
System.out.println("arrayList:"+(endTime-startTime)+"ms"); startTime=0L;endTime=0L; startTime = System.currentTimeMillis();
for (int i=0; i<1000000; i++) {
linkedList.add(0,"linkedList"+i);
} endTime=System.currentTimeMillis();
System.out.println("linkedList:"+(endTime-startTime)+"ms");
运行结果:
arrayList:127991ms
linkedList:1038ms
可以看出插入添加LinkedList比ArrayList快得多
1.2ArrayList与LinkedLis的set修改比较
代码:
List<String> linkedList = new LinkedList<>();
List<String> arrayList = new ArrayList<>(); for (int i=0;i<10000; i++) {
arrayList.add(i/2,"arrayList"+i);
}
for (int i=0; i<10000; i++) {
linkedList.add(i/2,"linkedList"+i);
} Long startTime = System.currentTimeMillis();
for (int i=0; i<10000; i++) {
linkedList.set(i,"linkedListNew"+i);
}
Long endTime=System.currentTimeMillis();
System.out.println("arrayList:"+(endTime-startTime)+"ms"); startTime=0L;endTime=0L; startTime = System.currentTimeMillis();
for (int i=0; i<10000; i++) {
arrayList.set(i,"linkedListNew"+i);
}
endTime=System.currentTimeMillis();
System.out.println("linkedList:"+(endTime-startTime)+"ms");
运行结果:
arrayList:417ms
linkedList:5ms
可以看出set修改LinkedList比ArrayList快的多
1.3ArrayList与LinkedLis的remove比较
1.3.1 ArrayList与LinkedLis的remove(0)比较
代码:
List<String> linkedList = new LinkedList<>();
List<String> arrayList = new ArrayList<>(); for (int i=0;i<10000; i++) {
arrayList.add(i/2,"arrayList"+i);
}
for (int i=0; i<10000; i++) {
linkedList.add(i/2,"linkedList"+i);
} Long startTime = System.currentTimeMillis();
for (int i=0; i<10000; i++) {
linkedList.remove(0);
}
Long endTime=System.currentTimeMillis();
System.out.println("linkedList:"+(endTime-startTime)+"ms"); startTime=0L;endTime=0L; startTime = System.currentTimeMillis();
for (int i=0; i<10000; i++) {
arrayList.remove(0);
}
endTime=System.currentTimeMillis();
System.out.println("arrayList:"+(endTime-startTime)+"ms");
运行结果:
linkedList:2ms
arrayList:11ms
可以看出两者都很快但LinkedList比ArrayList更快
1.3.2ArrayList与LinkedLis的0位置删除比较
代码:
List<String> linkedList = new LinkedList<>();
List<String> arrayList = new ArrayList<>(); for (int i=0;i<1000000; i++) {
arrayList.add("arrayList"+i);
}
for (int i=0; i<1000000; i++) {
linkedList.add("linkedList"+i);
}
Long startTime = System.currentTimeMillis();
for(int i=0; i< 1000000; i++){
arrayList.remove(0);
}
Long endTime=System.currentTimeMillis();
System.out.println("arrayList:"+(endTime-startTime)+"ms"); startTime=0L;endTime=0L; startTime = System.currentTimeMillis(); for(int i=0; i< 1000000; i++){
linkedList.remove(0);
}
endTime=System.currentTimeMillis();
System.out.println("linkedList:"+(endTime-startTime)+"ms");
运行结果
arrayList:129623ms
linkedList:26ms
java集合类List的更多相关文章
- Java集合类--温习笔记
最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...
- 做JavaWeb开发不知Java集合类不如归家种地
Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...
- 【转载】Java集合类Array、List、Map区别和联系
Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...
- 摘抄转载前辈们的Java集合类总结
本文摘自 Blue Sky:http://www.cnblogs.com/hubcarl JAVA 集合类介绍和使用 类关系示意图Iterable(接口) │ └--Collection (接口) ├ ...
- Java集合类简单总结(重学)
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...
- Java集合类中的哈希总结
JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...
- Java集合类: Set、List、Map、Queue使用场景梳理
本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E ...
- Java 集合类详解(含类图)
0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...
- Java集合类: Set、List、Map、Queue使用
目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的 ...
- 基础知识《六》---Java集合类: Set、List、Map、Queue使用场景梳理
本文转载自LittleHann 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F% ...
随机推荐
- Nexus安装、使用说明 (转)
1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载 ...
- 通过jenkins API去build一个job
背景 查看jenkins的api 直接访问 JENKINS_URL/job/JOB_NAME/api/ 就可以查看jenkins的api build一个job的话,是POST请求 JENKINS_UR ...
- MongoDB的aggregate聚合
聚合框架中常用的几个操作: $project:修改输入文档的结构.可以用来重命名.增加或删除域,也可以用于创建计算结果以及嵌套文档.(显示的列,相当遇sql 的) $match:用于过滤数据,只输出符 ...
- PHP正则表达式修饰符的种类及介绍
◆i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的.◆m:默认的正则开始"^"和结 ...
- AI时代的OCR识别技术浅析
人工智能这个词可谓是耳熟能详,近几年人工智能热潮再次席卷而来,引起轰动的要数google的AlphaGo,相继打败了围棋界的韩国选手李世石以及世界冠军柯洁,见证了人工智能发展的里程碑式的变革,人工智能 ...
- Modifying namespace in XML document programmatically
Modifying namespace in XML document programmatically static XElement stripNS(XElement root) { return ...
- sip 注册流程
基本注册流程示意图: 注册流程描述如下: 1. SIP代理向SIP服务器发送REGISTER请求: 2. SIP服务器向SIP代理发送响应401,并在响应的消息头WWW ...
- js判断字符串是否在数组中
先加一个扩展函数: Array.prototype.contains = function (obj) { var index = this.length; while (index–) { ...
- JS读取服务器返回的XMl格式字符串
function PostSMS(phoneNumber, sessionID, requestUrl, successAction) { $.ajax( { type: 'POST', url: r ...
- NULL 和 0
Question: What is the difference from NULL and "0"? Example: return NULL; return 0; Answer ...