不可变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);
}
}