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


    我们通过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);
    		 */
    	}
    
    }
    

      

  • 相关阅读:
    android 带图片的文本框
    Android 调用相册 拍照 实现系统控件缩放 切割图片
    Android核心分析索引
    Layout 水平平分空间、垂直平分空间
    Android中ActivityManagerService与应用程序(客户端)通信模型分析
    Android采用Movie播放GIF动画
    根据银行卡卡号判断银行
    TextView 显示效果
    实现通讯录的弹窗效果
    微软 DLinq技术来临前的国内 .NET 的 ORM 发展之局势
  • 原文地址:https://www.cnblogs.com/E-star/p/3441595.html
Copyright © 2020-2023  润新知