package linkedListDemo;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author q06285:
* @version 创建时间:2019年9月29日 上午9:37:05
*
*/
public class DiffLinkAndArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> l ;
l = new ArrayList<>();
insertMiddle(l,"ArrayList");
l = new LinkedList<>();
insertMiddle(l,"LinkedList");
}
public static void insertMiddle(List<Integer> l, String type) {
int total = 1000 * 100;
final int number = 77;
for (int i = 0 ; i< total;i++) {
l.add(i);
}
long start = System.currentTimeMillis();
for ( int i = 0 ; i<total;i++) {
l.add(l.size()/2, number);
}
long end = System.currentTimeMillis();
System.out.printf("在 %s 列表中间插入 %d 条数据,耗时 %d 毫秒 %n", type,total,end-start);
}
public static void insertLast(List<Integer> l, String type) {
int total = 1000 * 100;
final int number = 9;
for (int i = 0 ; i<total ; i++) {
l.add(i);
}
long start = System.currentTimeMillis();
for (int i = 0 ; i<total ; i++) {
l.add(number);
}
long end = System.currentTimeMillis();
System.out.printf("在 %s 列表末尾新增 %d 个元素,耗时 %d 毫秒 %n", type,total,end-start);
}
public static void modify(List<Integer> l ,String type) {
int total = 1000 * 100;
int index = total /2 ;
final int number = 5;
for ( int i = 0 ; i < total ; i++) {
l.add(number);
}
long start = System.currentTimeMillis();
for (int i = 0 ; i < total ; i++) {
int n = l.get(index);
n++;
l.set(index, n);
}
long end = System.currentTimeMillis();
System.out.printf("%s 总长度是 %d,定位到第 %d个数据,取出来,加1,再放回去 %n,重复 %d遍,总共耗时 %d 毫秒 %n ",
type,total,index,total, end-start);
System.out.println();
}
public static void insertFirst(List<Integer> l ,String type) {
int total = 1000 * 100;
final int number = 5;
long start = System.currentTimeMillis();
for (int i = 0 ; i< total; i++) {
l.add(0,number);
}
long end = System.currentTimeMillis();
System.out.printf("在%s 最前面插入 %d条数据,总耗时 %d 毫秒 %n",type,total,end-start);
}
}
网友评论