1. 用后面的 value 覆盖前面的

    Map<String, String> map = list.stream.collect(Collectors.toMap(Student::getName, Student::getAge, (value1, value2) -> value2));
  2. 将重复 key 的 value 进行拼接

    Map<String,String> map = list.stream.collect(Collectors.toMap(Student::getName, Student::getAge, (value1, value2) -> value1 + "," + value2));
  3. 将重复 key 的 value 作为 List

    Map<String, List<Product>> map = productList.stream().collect(Collectors.toMap(
         dto -> dto.getSkuId() + "_" + dto.getRegionId(), Lists::newArrayList, (value1, value2) -> {
             value1.addAll(value2);
             return value1;
         }
    ));

感谢大家的阅读, 如有疑问可以加我微信