debug..
hah… 这个错误是使用stream流把list收集成map搞的,原因是map的key是唯一的,如果不唯一就抛出了这个异常。
下面是异常代码
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** @author echo lovely* @date 2021/9/23 21:16* @description bug demo*/public class Demo {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("hah");list.add("abc");list.add("hah");// Duplicate key hMap<String, String> collect = list.stream().collect(Collectors.toMap(t -> t, t -> t.substring(0, 1)));System.out.println(collect);}
}
解决如下:
// 值使用覆盖前面的键的方式, 如果指向front,就不做覆盖.Map<String, String> collect = list.stream().collect(Collectors.toMap(t -> t, t -> t.substring(0, 1), (front, back) -> back));
System.out.println(collect);