不可变List集合:
package com.Lucky; //System.out.println("------------拓展:创建不可变的list集合---------------"); import java.util.Iterator; import java.util.List; public class NoValList { public static void main(String[] args) { //创建不可变的list集合-- List<String> list = List.of("张三", "李四", "王五"); //遍历 for (String s : list) { System.out.println(s); } System.out.println("-------------------------"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("-------------------------"); Iterator<String> iter = list.iterator(); while (iter.hasNext()){ System.out.println(iter.next()); } System.out.println("-----------不可变展示--------------"); list.add("唯易"); list.remove("张三"); list.set(1,"唯易"); /** * 无法进行其他的操作 * 只能查询 */ } }
不可变Set集合:
package com.Lucky; import java.util.Set; /* 不可变的Set集合 注意点:必须保证Set集合中存在唯一的值,否则会报错 */ public class NoValSet { public static void main(String[] args) { //创建 Set<String> setVar = Set.of("唯易"); //遍历 for (String s : setVar) { System.out.println(s); } //报错:只能查询 setVar.add("BUG"); setVar.remove("BUG"); setVar.clear(); } }
不可变Map集合:
package com.Lucky; import java.util.HashMap; import java.util.Map; import java.util.Set; /* 不可变Map集合 注意点:1. 键不可以重复 2. 最大传递的参数数量只有20个【底层无法采用可变参数】 3.如果实在是要传递超过20个参数【10对键值对】的话,请用Map.ofEntries(); */ public class NoValMap { public static void main(String[] args) { Map<String, Integer> mapVar = Map.of("唯易", 99999,"张三",66666); Set<String> strings = mapVar.keySet(); for (String str : strings) { System.out.println(str+":"+mapVar.get(str)); } System.out.println("*************************************"); Set<Map.Entry<String, Integer>> ent = mapVar.entrySet(); for (Map.Entry<String, Integer> entry : ent) { String k=entry.getKey(); int v=entry.getValue(); System.out.println(k+":"+v); } ///////////////报错///////////////// // System.out.println("----------报错-------------------"); // mapVar.put("王五",888888); // mapVar.remove("王五"); // mapVar.clear(); System.out.println("--------Map.ofEntries();----------"); HashMap<String,Integer> strM=new HashMap<>(); strM.put("we",1); strM.put("v",2); strM.put("cdv",3); strM.put("g",4); strM.put("bny",5); strM.put("ib",6); strM.put("bth",7); strM.put("rtu",8); strM.put("df",9); strM.put("mhhgfd",10); strM.put("ddfghjkgff",11); //获取键值对对象 Set<Map.Entry<String, Integer>> entries = strM.entrySet(); //创建符合Map.ofEntries();储存的键值对对象 Map.Entry[] Ent = new Map.Entry[11]; //创建变量接收 Map.Entry[] ries = entries.toArray(Ent); Map<String, Integer> mapOf = Map.ofEntries(ries); //参数时键值对类型 /* | | | 简化 */ // Map.ofEntries(strM.entrySet().toArray(new Map.Entry[0])); /* | | | 再简化 JDK10之后再出现的方法:copyOf() */ Map<String, Integer> map = Map.copyOf(strM); //此时的map就是不可变的map集合了 //报错 mapOf.put("kaokao",4567); map.put("kaokao",4567); } }
标签:Map,不可,System,put,strM,集合,println,out From: https://www.cnblogs.com/Lucky-only/p/16975395.html