我在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);
答案 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 和地图。
试试这个并看看。
谢谢!