- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.Random;
- public class TestList
- {
-
- private static Random random = new Random();
-
- public static void main(String[] args)
- {
-
- ArrayList<Integer> arraylist = new ArrayList<Integer>();
- LinkedList<Integer> linkedlist = new LinkedList<Integer>();
- Iterator<Integer> iterator = null;
- for (int i = 0; i < 100000; i++)
- {
- arraylist.add(i);//因为要看他们遍历的速度,所以很多因素都会影响,所以这里存入相同的东西
- linkedlist.add(i);
- }
-
- System.out.println("arraylist size " + arraylist.size());
- System.out.println("linkedlist size " + linkedlist.size());
- System.out.println("-------------------------------------------");
- long begin = System.currentTimeMillis();
- for (int i = 0; i < 100000; i++)
- {
- int a=arraylist.size();
- for (int j = 0; j < a; j++)
- {
- // int m=arraylist.get(j);//每次都取出来的话,我们知道arraylist的查改快,所以这里打印出的时间包括
- //从Arraylist中取值的时间。和linkedlist对比的话,当然ArrayList取值快,
- //在打印时间时,可以看的很明白下面两图的时间可以看出来
- }
- }
- System.out.println("arraylist get(n) time " + (System.currentTimeMillis() - begin));
-
- System.out.println("====================");
- begin = System.currentTimeMillis();
- for (int i = 0; i < 100000; i++)
- {
- int a=linkedlist.size();
- for (int j = 0; j < a; j++)
- {
- // int m=linkedlist.get(j);
- }
- }
- System.out.println("linkedlist get(n) time " + (System.currentTimeMillis() - begin) );
- }
- }
复制代码 //其实这里在不取值的时候。两次时间差是因为取了100000次linkedlist.size()的时间比ArrayList.size()短的时间。
//
//但是要遍历出集合中的数据(这里说的包括取出集合中的值,包括取值的时间的话)肯定是ArrayList的时间短,ArrayList比linkedlist取值块
//还是我们都知道的arraylist的查改快,linkedlist增删块,我觉得记着这个就好了,真的要得出集合中所有的值还是ArrayList比较好
|
-
1.jpg
(17.46 KB, 下载次数: 128)
不取值的时候
-
2.jpg
(12.96 KB, 下载次数: 136)
取值的时候,link时间太长了就不等了
|