Java的簡單理解(20)---容器的同步控制和只讀

Java
1.容器的同步控制: 多線程并發訪問集合的線程安全
  • 常用容器ArrayList HashSet HashMap等都是線程不安全的
  • Collections提供了synchronizedXxx()方法,將指定容器包裝成同步
    • synchronizedList
    • synchronizedSet
    • synchronizedMap
public void test1() {
       List<String> list = new ArrayList<>();
       list.add("a");
       list.add("b");

       // 可以同步
       List<String> list1 = Collections.synchronizedList(list);
   }
2.不可變設置:"只讀訪問",Collections提供了三種方法
  • emptyXxx() 空的不可變的集合
  • singletonXxx() 一個元素不可變的集合
  • unmodifiableXxx() 不可修改的容器
    public void test1() {
        Map<String,String> map = new HashMap<>();
        map.put("a","a");
        map.put("b","b");
        // 只允許讀
        Map<String,String> map1 = Collections.unmodifiableMap(map);
    }
public static Set<String> oper(Set<String> set) {

     if (set == null) {
         return Collections.EMPTY_SET; // 外部獲取避免空對象
     }
     return set;
 }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在一個方法內部定義的變量都存儲在棧中,當這個函數運行結束后,其對應的棧就會被回收,此時,在其方法體中定義的變量將不...
    Y了個J閱讀 4,447評論 1 14
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • Java集合類可用于存儲數量不等的對象,并可以實現常用的數據結構如棧,隊列等,Java集合還可以用于保存具有映射關...
    小徐andorid閱讀 1,976評論 0 13
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,733評論 0 11
  • 工作計劃 首先,完成本職工作。五月一日過后,稅收政策發生很大改變,本周重點是學習并理解運用新政策,完成匯算清繳專題...
    liling91閱讀 94評論 0 0