我有一个LinkedHashMap,在输出中有一些重复项。该地图如下所示:
Map<Object, List<Object>> myMap= new LinkedHashMap<Object, List<Object>>();
当我对该地图进行系统设置时,结果如下所示:
Test.example.id = [Source.table1.id, Source.table2.id],
Test.example.name = [Source.table1.name, Source.table1.name]
现在,我想过滤掉记录上的所有重复项,因此输出将是:
Test.example.id = [Source.table1.id, Source.table2.id],
Test.example.name = [Source.table1.name]
谁能帮我这个?
谢谢!
凯文
使用Java 8,您可以像这样进行操作(它会修改地图):
myMap.replaceAll((k, v) -> v.stream().distinct().collect(toList()));
否则,您将不得不手动遍历这些值,将它们放入中Set
以获取不同的属性,然后将其放回地图中。
for(Map.Entry<Object, List<Object>> entry : myMap.entrySet()) {
myMap.put(entry.getKey(), new ArrayList<>(new HashSet<>(entry.getValue()))); //you can use a new map if you want to keep the original one
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句