Java中创建只读容器,同步容器

本文介绍了如何使用Java中的Collections工具类创建不可修改(只读)及线程同步的集合容器,包括List、Set和Map等,并展示了具体的实现代码。

我们通过Collections.unmodifiableX来得到只读容器,因为容器被设为只读的,所以必须填入有意义的数据之后才进行设置

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;


/*
 * 创建只读容器
 */
public class Test{
	public static Collection<String> data = new ArrayList<String>(Arrays.asList("AAA BBB CCC DDD".split(" ")));	
	public static void main(String[] args) {
		Collection<String> c = Collections.unmodifiableCollection(data);
		System.out.println(c);
		//c.add("EEE");
		List<String> list = Collections.unmodifiableList(new ArrayList<String>(data));
		System.out.println(list);
		//list.add("EEE");
		
		Set<String> s =  Collections.unmodifiableSet(new HashSet<String>(data));
		System.out.println(s);
		//s.add("EEE");
		/*
		Collections.unmodifiableSortedMap(m);
		Collections.unmodifiableMap(m);
		Collections.unmodifiableSortedMap(m);
		*/
	}

}

  

我们可以通过Collections.synchronizedX来创建线程同步的容器

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;


/*
 * 创建同步容器
 */
public class Test{
	public static Collection<String> data = new ArrayList<String>(Arrays.asList("AAA BBB CCC DDD".split(" ")));	
	public static void main(String[] args) {
		Collection<String> c = Collections.synchronizedCollection(data);
		List<String> list = Collections.synchronizedList(new ArrayList<String>(data));
		list.add("AAA"); list.add("BB");
		/*
		 * Collections.synchronizedMap(m);
		 * Collections.synchronizedSortedMap(m);
		 * Collections.synchronizedSet(s);
		 * Collections.synchronizedSortedSet(s);
		 */
	}

}

  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值