Java基础——ArrayList与LinkedList(二)
今天练习ArrayList与LinkedList,在网上看到有关它俩应用效率的题型。觉得很有价值,保留一下。
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; public class CollT5 {
static final int N = 50000; static long timeList(List<Object> list) { long start = System.currentTimeMillis(); Object o = new Object();
for (int i = 0; i < N; i++)
list.add(0, o);
return System.currentTimeMillis() - start;
} public static void main(String[] args) {
System.out.println("ArrayList耗时:" + timeList(new ArrayList<Object>()));
System.out.println("LinkedList耗时:" + timeList(new LinkedList<Object>()));
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List; public class CollT6 {
static List<Integer> array = new ArrayList<Integer>();
static List<Integer> linked = new LinkedList<Integer>(); public static void main(String[] args) { for (int i = 0; i < 10000; i++) {
array.add(i);
linked.add(i);
}
System.out.println("array time:" + getTime(array));
System.out.println("linked time:" + getTime(linked));
System.out.println("array insert time:" + insertTime(array));
System.out.println("linked insert time:" + insertTime(linked)); } public static long getTime(@SuppressWarnings("rawtypes") List list) {
long time = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
@SuppressWarnings("unchecked")
int index = Collections.binarySearch(list, list.get(i));
if (index != i) {
System.out.println("ERROR!");
}
}
return System.currentTimeMillis() - time;
} @SuppressWarnings("unchecked")
public static long insertTime(@SuppressWarnings("rawtypes") List list) {
long time = System.currentTimeMillis();
for (int i = 100; i < 10000; i++) {
list.add(5000, i);
}
return System.currentTimeMillis() - time; } }
附加:
遇到java类型后面跟三个点是代表的情况了,就补充一下:
//java类型后面跟三个点是代表可以接受多个实际参数,这里的多个指的是不限个数,可以是一个、两个、三个甚至更多。
//java中类型后面加三个点是java1.5之后出现的新的内容.
//使用在函数的形参上,相当于一个数组,调用函数时传递多少了实际参数,都可以存储到这个形参上.
//需要注意的是,使用这个形参必须放在最后一位形参位置上,否则会报错!
//即,可变数组参数。用...的话,传参数时可传可不传,传的话,可以是一个个并列地传,也可以直接是一个数组。
//在方法里取时,s是一个数组,如果调用时什么都没有传,那么s的长度就是0。传的时候传了几个,s的长度就是几。
public class CollT4 {
public static void main(String[] args) {
printString();
System.out.println("==========");
printString(new String[] { "我", "和", "你" });
System.out.println("==========");
printString("我", "和", "你");
} public static void printString(String... str) {
if (str.length == 0) {
System.out.println("没有传参数。");
}
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
}
相关参考链接:
http://pengcqu.iteye.com/blog/502676
Java基础——ArrayList与LinkedList(二)的更多相关文章
- Java基础-ArrayList和LinkedList的区别
大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为Lin ...
- Java基础——ArrayList与LinkedList(一)
一.定义 ArrayList和LinkedList是两个集合类,用于储存一系列的对象引用(references). 引用的格式分别为: ArrayList<String> list = n ...
- JAVA基础:ArrayList和LinkedList区别
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList ...
- Java中ArrayList与LinkedList的区别
Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...
- Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]
Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- Java中arraylist和linkedlist源代码分析与性能比較
Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arra ...
- java中ArrayList 和 LinkedList 有什么区别
转: java中ArrayList 和 LinkedList 有什么区别 ArrayList和LinkedList都实现了List接口,有以下的不同点:1.ArrayList是基于索引的数据接口,它的 ...
随机推荐
- 在我朝如何为Brackets安装扩展?
Brackets是Adobe发起的一个开源的HTML编辑器,界面优美简洁.扩展丰富.支持基于Chrome浏览器的实时预览,非常适合对于Web的开发和学习. 但是Brackets的安装包下载和扩展下载, ...
- 验证FluentValidation
FluentValidation https://www.xcode.me/code/fluentvalidation-dot-net-library 这里写得很详细了
- 【计算机网络】 网络体系结构分类: 客户机/服务器体系和P2P
网络体系结构的分类 现代网络应用程序有两种主流的体系结构: 客户机/服务器体系结构和P2P体系结构(peer to peer “对等”) 一 . 客户机/服务器体系结构 客户机/服务器体系 ...
- Java - 初识Java
Java是一种跨平台的面向对象的程序设计语言. 区分大小写: 标点符号为英文: 强类型语言,在Java中存储的数据,必须在编译时确定其类型: Java版本 Java按应用范围分为3个版本,即Java ...
- _tkinter.TclError: image "pyimage1" doesn't exist 解决办法
_tkinter.TclError: image "pyimage1" doesn't exist 解决办法 1 def logout(self): 2 login.LoginWi ...
- [原创]K8飞刀20150720 新增Shellcode Loader支持多种格式
工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/20 3:00:18 简介: ...
- [原创]内网渗透JSP webSehll连接工具
工具: JspShellExec编译: VS2012 C# (.NET Framework v2.0)组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.b ...
- C#枚举中使用Flags特性
.NET中的枚举我们一般有两种用法,一是表示唯一的元素序列:还有就是用来表示多种复合的状态.这个时候一般需要为枚举加上[Flags]特性标记为位域,这样我们就可以用"或"运算符组合 ...
- js便签笔记(14)——用nodejs搭建最简单、轻量化的http server
1. 引言 前端程序猿主要关注的是页面,你可能根本就用不到.net,java,php等后台语言. 但是你制作出来的网页总要运行.总要测试吧?——那就免不了用到http server.我先前都是用vis ...
- RocketMQ多Master多Slave模式部署
每个 Master 配置一个 Slave,有多对Master-Slave,HA采用同步双写方式,主备都写成功,向应用返回成功. 优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性 ...