如何使用java从地图中删除重复项

时间:2014-09-17 04:18:26

标签: java

我在finalMapNode上添加了一些项目,使用map为d3创建json。我不想要任何重复项目。如何check.finalmapNode把重复项放在map.I不要重复item.if项是可用的,然后它不应该放在地图上。如果id是可用的,那么item不应该放在finalmapnode中。

注意::如果id是可用的,那么item不应该放在finalmapnode中。

List<Map<String, Object>> listNodeMap = new ArrayList<Map<String, Object>>();
Map<String, Object> finalMapNode2 = new TreeMap<String, Object>();
    Map<String, Object> finalMapNode = new TreeMap<String, Object>();


                   //if id is avalable then item should not put in the finalmapnode.

                    finalMapNode.put("id", Integer.parseInt(source2.get(z))+"");
                    finalMapNode.put("name",source.get(z));
                    finalMapNode.put("displayname", source.get(z));
                    finalMapNode.put("image", "/xxxxx/resources/icon/location.png");
                    finalMapNode.put("type", "location");
                    finalMapNode.put("group", 0);
                    finalMapNode.put("opacity", 100);

                    finalMapNode2.put("id", Integer.parseInt(target2.get(z))+"");
                    finalMapNode2.put("name",target.get(z));
                    finalMapNode2.put("displayname", target.get(z));
                    finalMapNode2.put("image", "/xxxxx/resources/icon/location.png");
                    finalMapNode2.put("type", "location");
                    finalMapNode2.put("group", 0);
                    finalMapNode2.put("opacity", 100);

                listNodeMap.add(finalMapNode);
                listNodeMap.add(finalMapNode2);

1 个答案:

答案 0 :(得分:1)

当您尝试添加hashmap中已有的KEY时,它将覆盖之前KEY的VALUE并添加新的VALUE。因此,在尝试添加KEY和VALUE之前,您需要验证地图。您可以使用 finalmapnode.containsKey(KEY); 来验证然后添加VALUES。

修改

请检查以下方法是否适合您!

private static void putMap(String strKey, Object object, Map<String, Object> map){
    if(!map.containsKey(strKey)){
        map.put(strKey, object);
    }
}

在您的情况下,而不是使用

finalMapNode.put("name",source.get(z));

你可以使用

putMap("name",source.get(z), finalMapNode);

如果添加重复的KEYS,上述方法不会覆盖这些值。通过您声明为 finalMapNode KEY VALUE 地图

试试这个并看看。

谢谢!