一、List集合按照专业id对应的所包含班级名称name进行转换
class Faculty{
//专业id
private Integer id;
//班级名称
private String name;
public Faculty(Integer id,String name){
this.id = id;
this.name= 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<Faculty> 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<Integer, String> 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 Faculty(Integer id,String name){
this.id = id;
this.name= 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<Faculty> 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<Integer, List<String>> map = list.stream().collect(Collectors.toMap(Faculty::getId,
p -> {
List<String> getNameList = new ArrayList<>();
getNameList.add(p.getName());
return getNameList;
},
(List<String> value1, List<String> value2) -> {
value1.addAll(value2);
return value1;
}
));
System.out.println(map);
}
}
2、使用增强for循环
class Faculty{
//专业id
private Integer id;
//班级名称
private String name;
public Faculty(Integer id,String name){
this.id = id;
this.name= 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<Faculty> 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<Integer, List<String>> map = new HashMap<>();
for(Faculty faculty : list){
List<String> nameList = map.getOrDefault(faculty.getId(),new ArrayList<>());
nameList.add(faculty.getName());
map.put(faculty.getId(),nameList);
}
System.out.println(map);
}
}