问题:我有一个实用函数,它接受一个通用列表来删除重复项,现在当我使用List<String>
时,匹配不区分大小写。代码使用流(Java 8+),我想保持这种方式。从列表中删除使用泛型的重复项
注:代码是在JAVA 8+
代码:
public static <T> List<T> removeDuplicates(List<T> inputList) {
List<T> result = null;
if (inputList != null && inputList.size() > 0) {
result = inputList.parallelStream().distinct().collect(Collectors.toList());
}
return result;
}
EG:
List<String> inputList = new ArrayList<String>();
inputList.add("a");
inputList.add("A");
inputList.add("abc");
inputList.add("ABC");
inputList.add("c");
当我们调用removeDuplicates(inputList)
并打印
值:
a
abc
c
我真的不关心,如果它选择了a
ABC
在abc
或A
,但它应该有一次。
有没有一个优雅的方式解决这个问题,而不是做一个instanceof
检查?
你为什么不只是转换了'List'到'Set'? –
如果你只处理'String',为什么要使方法通用? – Jezor
@MatthewDiana它仍然不会解决我的问题。设置删除重复项,但不检查不区分大小写的部分... – StackFlowed