首页 > 编程知识 正文

cpu性能比较,性能比较好的笔记本电脑

时间:2023-05-03 17:24:37 阅读:236428 作者:428

1.Collections.addAll() 与 ArrayList.addAll()都是将所有指定的元素添加到指定的集合中;但是两个的效率谁更高呢?

通过查看Collections.addAll() 源码有这样的一段话:

The behavior of this convenience method is identical to that of<tt>c.addAll(Arrays.asList(elements))</tt>, but this method is likelyto run significantly faster under most implementations.

用我蹩脚英语翻译下:Collections.addAll() 与 c.addAll(Arrays.asList(elements))的行为相同,但是在大多数实现下,此方法(Collections.addAll() )的运行速度可能明显更快。

下面我们可以通过代码测试一下 (往list添加数组)

public static String[] ids = {"1", "2", "3", "4", "5", "11", "12", "13", "14", "15"}; public static List<Integer> list2 =new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9,10)); public static long arraysTakeTime(int size) { long startTime = System.currentTimeMillis(); List list = new ArrayList(); for (int i = 0; i < size; i++) { list.add(i); } //list.addAll(Arrays.asList(ids)); list.addAll(Arrays.asList(list2)); // System.out.println(list); return System.currentTimeMillis() - startTime; } public static long collectionsTakeTime(int size) { long startTime = System.currentTimeMillis(); System.out.println("--------------------startTime------------------------------"+startTime); List list = new ArrayList(); for (int i = 0; i < size; i++) { list.add(i); } //Collections.addAll(list, ids); Collections.addAll(list, list2);/* System.out.println("--------------------endtime------------------------------"); System.out.println(System.currentTimeMillis() - startTime);*/ return System.currentTimeMillis() - startTime; } public static void main(String[] args) { //通过比对size的大小查看各自花费的时间 int size = 1000000; System.out.println("Arrays's take time is " + arraysTakeTime(size)); System.out.println("Collections's take time is " + collectionsTakeTime(size)); }

当size = 10000时;

 

当size=100000时;

 

 

当size=1000000时,

由此看来, Collections.addAll() 与 ArrayList.addAll()往里面添加数组的话,性能差别不大。

 

往list添加list中:

size = 10000;

 

当size=100000时,

 

 

当size=100000时,

所以 往list添加list中推荐使用ArrayList.addAll()

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。