import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* Java stream 中list转map出现重复key的问题处理 <Description> <br>
*
* @author bestree007<br>
* @version 1.0<br>
* @taskId <br>
* @CreateDate 2020年6月29日 <br>
*/
public class ListToMapDuplicatedKey {
/**
* 学生POJO <Description> <br>
*
* @author bestree007<br>
* @version 1.0<br>
* @taskId <br>
* @CreateDate 2020年6月29日 <br>
*/
public static class Stu {
/**
* 编号
*/
private String id;
/**
* 名称
*/
private String name;
/**
* get id
*
* @return Returns the id.<br>
*/
public String getId() {
return id;
}
/**
* set id
*
* @param id The id to set. <br>
*/
public void setId(String id) {
this.id = id;
}
/**
* get name
*
* @return Returns the name.<br>
*/
public String getName() {
return name;
}
/**
* set name
*
* @param name The name to set. <br>
*/
public void setName(String name) {
this.name = name;
}
}
/**
* main函数入口 Description: <br>
*
* @author bestree007<br>
* @taskId <br>
* @param args <br>
*/
public static void main(String[] args) {
List<Stu> stus = new ArrayList<>();
Stu stu1 = new Stu();
stu1.setId("1");
stus.add(stu1);
Stu stu2 = new Stu();
stu2.setId("1");
stus.add(stu2);
Stu stu3 = new Stu();
stu3.setId("2");
stus.add(stu3);
// 这里指定key重复时,value的合并方式,即选择其中一个
Map<String, Stu> idMap = stus.stream().collect(Collectors.toMap(Stu::getId, Function.identity(), (item2, item1) -> item2));
System.out.println(idMap);
}
}