面试题:Collection和Collections的区别.
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
都是线程不安全的,在多线程环境下不安全.
在Collections类中有获取线程安全的集合方法:
List list = Collections.synchronizedList(new ArrayList());
当要迭代的时候得使用synchronized.
synchronized(list){
TODO
}
Set set = Collection.synchronizedSet(new HashSet());
Map map = Collection.synchronizedMap(new HashMap());