一、List集合按照专业id对应的所包含班级名称name进行转换
class Faculty{
//专业id
private Integer id;
//班级名称
private String name;
public void setId(Integer id){
this.id = id;
}
public Integer getId(){
return id;
}
public void setName(String name){
this.name= name;
}
public String getName(){
return name;
}
}
public class Main{
public static void main(String[] args){
//声明一个List集合
List list = new ArrayList();
list.add(new Faculty("1001", "计科01"));
list.add(new Faculty("1002", "计科02"));
list.add(new Faculty("1003", "计科03"));
System.out.println(list);
//将list转换map
Map map = list.stream().collect(Collectors.toMap(Faculty::getId, Faculty::getName));
System.out.println(map);
}
}
二、将list转换map key为专业id, value是 相同专业id的所包含的不同班级名称 1、使用Java8的新特性steam
class Faculty{
//专业id
private Integer id;
//班级名称
private String name;
public void setId(Integer id){
this.id = id;
}
public Integer getId(){
return id;
}
public void setName(String name){
this.name= name;
}
public String getName(){
return name;
}
}
public class Main{
public static void main(String[] args){
//声明一个List集合
List list = new ArrayList();
list.add(new Faculty("1001", "A"));
list.add(new Faculty("1002", "B"));
list.add(new Faculty("1002", "C"));
list.add(new Faculty("1003", "D"));
list.add(new Faculty("1003", "E"));
list.add(new Faculty("1003", "F"));
System.out.println(list);
//将list转换map key为专业id, value是 相同专业id的所包含的不同班级名称
Map> map = list.stream().collect(Collectors.toMap(Faculty::getId,
p -> {
List getNameList = new ArrayList<>();
getNameList.add(p.getName());
return getNameList;
},
(List value1, List value2) -> {
value1.addAll(value2);
return value1;
}
));
System.out.println(map);
}
}
2、使用增强for循环
class Faculty{
//专业id
private Integer id;
//班级名称
private String name;
public void setId(Integer id){
this.id = id;
}
public Integer getId(){
return id;
}
public void setName(String name){
this.name= name;
}
public String getName(){
return name;
}
}
public class Main{
public static void main(String[] args){
//声明一个List集合
List list = new ArrayList();
list.add(new Faculty("1001", "A"));
list.add(new Faculty("1002", "B"));
list.add(new Faculty("1002", "C"));
list.add(new Faculty("1003", "D"));
list.add(new Faculty("1003", "E"));
list.add(new Faculty("1003", "F"));
System.out.println(list);
//将list转换map key为专业id, value是 相同专业id的所包含的不同班级名称
Map> map = new HashMap<>();
for(Faculty faculty : list){
List nameList = map.getOrDefaulty(faculty.getId(),new ArrayList<>());
nameList.add(faculty.getName());
map.put(faculty.getId,nameList);
}
System.out.println(map);
}
}



