一:同步控制:多线程并发访问集合的线程安全
java.lang.UnsupportedOperationException操作异常
常用容器 ArrayList HashSet HashMap 等都是线程不安全的
Collections提供了synchronizedXxx()方法,将指定容器包装成同步
synchronizedList()
synchronizedSet()
synchronizedMap()
具体代码:
List<String> list = new ArrayList<String>();
list.add( "a");
list.add( "b");
//list可以同步
List<String> synList = Collections.synchronizedList(list);
System. out.println( "线程安全的list制作完毕" );
二:不可变设置:"只读"访问,Collections提供了三种方法
emptyXxx()空的不可变的集合
public static Set<String> oper(Set<String> set){
//操作
if( null==set){
return Collections.EMPTY_SET;//外部获取避免NullPointException
}
return set;
}
singletonXxx一个元素不可变的集合
List<String> list = Collections.singletonList(new String());
list.add( "test");
//list.add("bjsxt ");//只能包含一个元素的容器
unmodifiableXxx不可变容器
Map<String,String>map = new HashMap<String,String>();
map.put( "test", "test");
map.put( "bjsxt","bjsxt" );
//只读控制
Map<String,String>map2 = Collections. unmodifiableMap(map);
// map2.put("a","a");//不能操作
System. out.println(map2.size());
|
|