您的位置:首页 > 其它

Collections类的用法

2016-03-06 09:46 260 查看
Collections类克Collection接口的区别,Collections类主要提供大量方法对Set,List和Map等集合的元素的排序、查询和修改等操作,还提供将集合对象设置为不可变,对集合对象实现同步控制等方法。而Collection接口是Set,List等容器的祖先。

Collections位于java.util.Collections下面,常用方法自己查询。主要说下它的同步控制,因为一般只有Vector和Hashtable是线程同步的,对于其他集合例如HashSet TreeSet等都是线程不安全的。Collections提供多个synchronizedXXX()静态方法将对象容器包装成线程同步的集合。

public class SynchronizedTest{

. .Collection c=Collections.synchronizedCollection(new ArrayList());

. .List list=Collections.synchronizedList(new ArrayList());

. Set s=Collections.synchronizedSet(new HashSet());

. .Map m=Collections.syn....Map(new HashMap());

}

然后是如何设置不可变集合,不可变在这里可以大概理解为集合对象只能访问集合元素,不可修改集合元素。Collections提供了三个方法

List unList=Collections.emptyList()//第一个方法,返回一个空的,不可改变的集合对象(可以是Set,List和Map,下同)

Set unSet=Collections.singleTon("傻瓜");//返回一个包含指定对象(只有一个或一项元素)的不可变的集合对象

Map scores=new HashMap();

scores.put("数学",90);

scores.put(“语文”,89);

Map unMap=Collections.unmodifiableMap(scores);

//下面任意一行都会报unsupptedOperation异常

unList.add("测试");//只能是空

unset.add(“测试”);//只能含有一个

unMap.add("语文",8);//不可修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: