面試題:Collection和Collections的區(qū)別.
Collection類:封裝了Set,List,Map的操作的工具方法.
獲取空集對象(沒有元素的集合,注意集合不為null):
List<Object> list1 = Collections.EMPTY_LIST;//常量
List<Object> list2 = Collections.emptyList;//方法
List<Object> list3 = new ArrayList<>();//從java7開始,方法
常用的集合類:
HashSet/ArrayList/HashMap
都是線程不安全的,在多線程環(huán)境下不安全.
在Collections類中有獲取線程安全的集合方法:
List list = Collections.synchronizedList(new ArrayList());
當要迭代的時候得使用synchronized.
synchronized(list){
TODO
}
Set set = Collection.synchronizedSet(new HashSet());
Map map = Collection.synchronizedMap(new HashMap());