今天练习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(二)的更多相关文章

  1. Java基础-ArrayList和LinkedList的区别

    大致区别:  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为Lin ...

  2. Java基础——ArrayList与LinkedList(一)

    一.定义 ArrayList和LinkedList是两个集合类,用于储存一系列的对象引用(references). 引用的格式分别为: ArrayList<String> list = n ...

  3. JAVA基础:ArrayList和LinkedList区别

    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList ...

  4. Java中ArrayList与LinkedList的区别

    Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...

  5. Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]

    Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...

  6. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  7. java基础-引用数据类型之二维数组(Array)

    java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...

  8. Java中arraylist和linkedlist源代码分析与性能比較

    Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arra ...

  9. java中ArrayList 和 LinkedList 有什么区别

    转: java中ArrayList 和 LinkedList 有什么区别 ArrayList和LinkedList都实现了List接口,有以下的不同点:1.ArrayList是基于索引的数据接口,它的 ...

随机推荐

  1. ajax调用WebMethed返回处理请求时出错

    ajax post调用WebMethed报错,返回的信息如下: {“Message”:“处理请求时出错”,“StackTrace”:“”,“ExceptionType”:“”} 查了一下WebMeth ...

  2. ASP.Net MVC OA项目笔记<一>

    1.1.1 新建空白解决方案CZBK.ItcastOA 1.2.1 添加类库 1.2.2 同上添加多个类库 生成的 class1.cs先不用删除,删了的后,后面可能没办法直接点引用 1.3.1 添加表 ...

  3. webpack快速入门——实战技巧:watch的正确使用方法,webpack自动打包

    随着项目大了,后端与前端联调,我们不需要每一次都去打包,这样特别麻烦,我们希望的场景是,每次按保存键,webpack自动为我们打包,这个工具就是watch! 因为watch是webpack自带的插件, ...

  4. 【AWK】:常用总结

    单机文本数据处理,常用AWK,总结一下AWK最常用的要点,备忘备查. 1.What is AWK(1)Aho.Weinberger.Kernighan三位发明者名字首字母:(2)一个行文本处理工具: ...

  5. dubbo+zookeeper注册服务报错问题:No service registed on zookeeper

    2019-04-04 11:23:40,372 ERROR [tomcat-threads--1] (com.bill99.dolphin.controller.ExceptionController ...

  6. css 图片文字居中

    1.单行文字居中 2.多行文字居中 3.利用background-position:center;的图片居中 4.利用display:table-cell;属性的图片居中 <!DOCTYPE h ...

  7. 群辉6.1.7安装scrapy框架执行爬虫

    只针对会linux命令,会python的伙伴, 使用环境为: 群辉ds3615xs 6.1.7 python3.5 最近使用scrapy开发了一个小爬虫,因为很穷没有服务器可已部署. 所以打起了我那台 ...

  8. MyBatis框架介绍及其实操

    一.基本概念和介绍 数据持久化的概念 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.例如,文件的存储.数据的读取等都是数据持久化操作.数据模型可以是任何数据 ...

  9. mvc大对象json传输报错

    public ActionResult GetLargeJsonResult() { return new ContentResult { Content = new JavaScriptSerial ...

  10. 线程同步辅助类CyclicBarrier

    CyclicBarrier 是一个可重置的多路同步点,在某些并行编程风格中很有用. 集合点同步:CyclicBarrier 多条线程同时执行一个阶段性任务时,相互等待,等到最后一个线程执行完阶段后,才 ...