Collections类的用法

本文介绍了Java中Collections类和Collection接口的区别。Collections类提供了一系列用于集合元素的排序、查询和修改的方法,并支持集合对象的同步控制及不可变设置。Collection接口则是Set、List等容器的共同父接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);//不可修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值