不可變集合:不可以被修改的集合
創建不可變集合的應用場景
- 如果某個數據不能被修改,把它防御性地拷貝到不可變集合中是個很好的實踐。
- 當集合對象被不可信的庫調用時,不可變形式是安全的。
簡單理解:不想讓別人修改集合中的內容
不可變list集合代碼演示:
import java.util.List;
public class text {public static void main(String[] args) {//創建不可變集合List<String>list = List.of("張三","王五","找六");System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.get(2));for(String s:list){System.out.println(s);}list.remove("王五");//不可變集合不能進行刪除//這里代碼會報錯}
}
不可變set集合代碼演示:注意set集合無索引,元素唯一。
import java.util.List;
import java.util.Set;
public class text {public static void main(String[] args) {//創建不可變集合Set<String> set= Set.of("張三","李四","王五");for(String s:set){System.out.println(s);}set.remove("王五");//不可變集合不能進行刪除//這里代碼會報錯}
}
不可變map集合代碼演示:注意
細節1:鍵是不能重復的
細節2:Map里面的of方法,參數是有上限的,最多只能傳遞20個參數,10個鍵值對
import java.util.Map;
import java.util.Set;
public class text {public static void main(String[] args) {//創建不可變集合Map<String,String>map=Map.of("a","1","b","2");Set<String> keys = map.keySet();for(String key:keys){String value=map.get(key);System.out.println(key+"="+value);}}
}
創建Map的不可變集合,鍵值對的數量超過10個
Map<String,String> m = Map.copyOf(map);
1.不可變集合的特點?
●定義完成后不可以修改,或者添加、刪除
2.如何創建不可變集合?
●List、Set、Map接口中,都存在of方法可以創建不可變集合
3.三種方式的細節
●List:直接用
●Set:元素不能重復
●Map:元素不能重復、鍵值對數量最多是10個。
超過10個用ofEntries方法或copyof的方法