list<String>去重BUG

复盘一下:
最近项目上出现了这样一个问题,前端传的参数是List类型的,里面的内容是数字,我用String接收,貌似没啥问题。但是。。。。

List<String> list = new ArrayList<>(5);
list.add("1");
list.add("1");
list.add("2");

System.out.println(list);

List<String> list2 = list.stream().distinct().collect(Collectors.toList());
System.out.println(list2);

输出:

[1, 1, 2]
[1, 2]

没啥问题,但是我给第一个数字加空格,

List<String> list = new ArrayList<>(5);
list.add("1 ");
list.add("1");
list.add("2");

System.out.println(list);

List<String> list2 = list.stream().distinct().collect(Collectors.toList());
System.out.println(list2);

输出:

[1 , 1, 2]
[1 , 1, 2]

好嘛,出现了问题,导致我将1号记录插入了两次,导致线上问题。

解决:
既然内容是数字,可以使用Integer接收。就没问题,但是String的话,得让前端将字符串空格去掉即可。

你可能感兴趣的:(list<String>去重BUG)