【Java编程思想】第十一章:持有对象

思维导图:

【Java编程思想】第十一章:持有对象

 

Q1:Collection和Collections的区别?

java.util.Collection 是一个集合接口(集合类的一个*接口)。它提供了对集合对象进行基本操作的通用接口方法。

Collections是集合类的一个工具类/帮助类。其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

 

Q2:Arrays.asList()与Collections.addAll()的创建Collection效率问题。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArraysCompareCollections {
    public static void main(String[] args){
        long count =100000000;
        long start = System.currentTimeMillis();
        //use Arrays.asList()
        for (int i=0;i<count;i++){
            List<String> a = new ArrayList<String>();
            a.addAll(Arrays.asList("Peaches 'n Plutonium", "Rocky Racoon"));
        }
        System.out.println(System.currentTimeMillis()-start);
        start =System.currentTimeMillis();
        for (int i=0;i<count;i++){
            List<String> a = new ArrayList<String>();
            Collections.addAll(a,"Peaches 'n Plutonium", "Rocky Racoon");
        }
        System.out.println(System.currentTimeMillis()-start);
    }
}

运行结果

2146
882