JAVA:如何删掉list里面重复的Map?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA:如何删掉list里面重复的Map?相关的知识,希望对你有一定的参考价值。

如:new一个map=map.put("1","abc");list.add(map);new一个map=map.put("2","abc");再list.add(map);然后再new一个map=map.put("3","jsk");再list.add(map);然后再new一个map=map.put("4","abc");list.add(map);
想要运行后删掉2,4的map,怎么实现捏?小弟初学,求代码

参考技术A 不知道你为什么有这种变态需求。如果是作为学习训练还情有可原,要是你是要实现一个什么东西不得不这样,那你就实在是实现的太搓了。用什么不好,用这么多map,还用list来过滤。
算我无聊,这是代码,clearList是方法,main是给你写的一个测试用的例子
public class Test

public static void clearList(List<Map<String, String>> list)

if (list == null) return;

Set<String> set = new HashSet<String>();
for (Iterator<Map<String, String>> it = list.iterator(); it.hasNext();)

//里面的map至少有一个元素,不然报错
String value = it.next().entrySet().iterator().next().getValue();
if (set.contains(value))

it.remove();

else

set.add(value);




public static void main(String args[])

List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("1", "abc");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("2", "abdc");
Map<String, String> map3 = new HashMap<String, String>();
map3.put("3", "abc");
list.add(map1);
list.add(map2);
list.add(map3);
clearList(list);
for (Iterator<Map<String, String>> it = list.iterator(); it.hasNext();)

String value = it.next().entrySet().iterator().next().getValue();
System.out.println(value);


Java中List集合转Map集合报错:Duplicate key

一、问题由来

  最近生成环境刚发布了一个版本,本人负责优化的一个功能在进行测试时,报错了一个异常,duplicate key;去百度里面看了一下,

意思很明确就是建重复,而且错误是在Java代码中抛出来的。

 

 

二、问题分析

  自己立马去查看Java代码,发现这样写是没有问题的,问题出在查询出来的结果进行转换时,键有重复的,可是有不同的值。因此

才报了一个键重复的错误。搞清楚问题的原因后就知道怎么解决了。
三、解决方案

  解决办法的核心就是让返回的结果中,键没有重复的值,这样就可以解决问题。这个是原来错误的查询语句,

 

 更改后的查询语句为

 

 主要做了两个改动,一个是按照键进行分组查询,这样就可以去重,其次是取值时,使用max函数取最大值即可。发布到测试环境,添加了测试数据

后,测试结果正确,修改 方式可行。

以上是关于JAVA:如何删掉list里面重复的Map?的主要内容,如果未能解决你的问题,请参考以下文章

c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据

JAVA中的List里的Map 如何去除重复的Key?

Java里面List排序

java里有没有专门判断List里有重复的数据

java里有没有专门判断List里有重复的数据

Java复习 之容器