今天练习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

最新文章

  1. 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  2. 在Eclipse中在线安装Emmet和图文使用教程
  3. 教你ECSHOP去版权与标志(新增272版)
  4. [codevs3295]落单的数
  5. 如何在我自己的web 项目的jsp页面中添加链接,直接让别人通过内网在我的电脑上下载文件
  6. Java中实现十进制数转换为二进制的三种思路
  7. cmd常用命令总结
  8. Vue.js 循环语句
  9. html5的audio实现高仿微信语音播放效果
  10. GDAL指定自定义的金字塔目录
  11. 牛客练习赛24题解(搜索,DP)
  12. react native 入门 (1)- 环境搭建, 创建第一个Hello World
  13. Linux命令——压缩和解压缩
  14. tcp线程聊天
  15. 9款赏心悦目的HTML5/CSS3应用特效
  16. html/php/mysql乱码
  17. 7 python 类的组合
  18. HDU 1576 A/B 暴力也能过。扩展欧几里得
  19. 黑客编程教程(二)Win API编程简介
  20. maven常用命令集合

热门文章

  1. ASP.NET MVC 实现有论坛功能的网站(有iis发布网站)
  2. 存储过程 Mvc 的调用
  3. [leetcode.com]算法题目 - Pascal&#39;s Triangle
  4. linux 如何开通新的端口
  5. underscore.js源码研究(7)
  6. 容器监控:cadvisor+influxdb+grafana
  7. Spring MVC前后端数据交互总结
  8. CSS选择器之兄弟选择器(~和+)
  9. java极光推送记录
  10. 弹出AlertDialog的时候报You need to use a Theme.AppCompat theme (or descendant) with this activity错误