JAVA:如何删掉list里面重复的Map? 5
如:new一个map=map.put("1","abc");list.add(map);new一个map=map.put("2","abc");再list.add(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,怎么实现捏?小弟初学,求代码 展开
想要运行后删掉2,4的map,怎么实现捏?小弟初学,求代码 展开
1个回答
展开全部
不知道你为什么有这种变态需求。如果是作为学习训练还情有可原,要是你是要实现一个什么东西不得不这样,那你就实在是实现的太搓了。用什么不好,用这么多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);
}
}
}
算我无聊,这是代码,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);
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询