public class ImmutableDemo1 {
    public static void main(String[] args) {
        /*
        创建不可变集合
         */
        List<String> list= List.of("haha","xiangxiang","xixi");
        System.out.println(list);
        //list.add("xixi");
        for(String s:list){
            System.out.println(s);
        }
        System.out.println("-----------------");
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("-----------------");
        list.forEach(s-> System.out.println(s));
    }
}
------------------------------------
public class ImmutableDemo2 {
    public static void main(String[] args) {
        //不可变map集合最多只能存放10个键值对
        //如果超过10个键值对,会抛出异常
        //如果想存放更多的键值对
        Map<String,String> map=new HashMap<>();
        map.put("001","zhangsan");
        map.put("002","lisi");
        map.put("003","wangwu");
        map.put("004","zhaoliu");
        Set<Map.Entry<String, String>> entries = map.entrySet();
        //把entries变成一个数组
        //要指定类型
        //如果数组长度不够,会自动扩容,所以直接设置0就行
        Map.Entry<String,String>[] arr = entries.toArray(new Map.Entry[0]);
        //创建不可变的map集合
        Map<String, String> map1 = Map.ofEntries(arr);
        System.out.println(map1);
        //简化
        Map.Entry<String,String>[] arr1 = map.entrySet().toArray(new Map.Entry[0]);

        //常用方法
        //直接用copyOf方法,传入一个map集合,即可返回一个不可变的map集合
        Map<String, String> map2 = Map.copyOf(map);
        System.out.println(map2);
    }
}