1.使用流转map并且遍历
package com.demo.toMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MianDemo {
public static void main(String[] args) {
List<NodeList> list = initList();
//List通过流转Map<String,Integer>
Map<String,Integer> map = list.stream().collect(Collectors.toMap(NodeList::getName, NodeList->NodeList.getAge()==null?1:NodeList.getAge()));
//List通过流转Map<String,NodeList>
Map<String,NodeList> mapObj = list.stream().collect(Collectors.toMap(NodeList::getName, NodeList->NodeList));
System.out.println("=============================================");
//map遍历方式1
map.forEach((key,val)->{
System.out.println("方式1 key: "+key+" , "+"val:"+val);
});
System.out.println("=============================================");
//map遍历方式2
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("方式2 key: "+key+" , "+"val:"+value);
}
System.out.println("=============================================");
//map遍历方式3,通过遍历 key 获取 val
for (String key : map.keySet()) {
// 根据键获取值
Integer value = map.get(key);
System.out.println("方式3 key: "+key+" , "+"val:"+value);
}
System.out.println("=============================================");
//map遍历方式4,遍历values
for (Integer val : map.values()) {
System.out.println("方式4 val:"+val);
}
System.out.println("=============================================");
//map遍历方式5,
map.entrySet().forEach(entry->{
System.out.println("方式5 key: "+entry.getKey()+" , "+"val:"+entry.getValue());
});
System.out.println("=============================================");
//map遍历方式5,
map.keySet().forEach(key->{
Integer age = map.get(key);
System.out.println("方式5 key: "+key+" , "+"val:"+age);
});
}
private static List<NodeList> initList(){
List<NodeList> list = new ArrayList<>();
NodeList node1 = new NodeList();
node1.setName("a");
node1.setAge(23);
NodeList node2 = new NodeList();
node2.setName("b");
node2.setAge(23);
NodeList node3 = new NodeList();
node3.setName("c");
node3.setAge(23);
list.add(node1);
list.add(node2);
list.add(node3);
return list;
}
}
2.集合对象
package com.demo.toMap;
public class NodeList {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}