![](/img/trans.png)
[英]How to remove duplicates and matching original elements from list using java
[英]how to remove duplicates from the map using java
我在 finalMapNode 上添加了一些項目,使用 map 為 d3 創建 json。 我不想要任何重復的項目。 如何檢查.finalmapNode 將重復項放在 map 上。我不想要重復項。如果項目可用,則不應放在 map 上。 如果 id 是可用的,那么項目不應該放在 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);
當您嘗試添加 hashmap 中已有的 KEY 時,它將覆蓋之前的 KEY 的 VALUE 並添加新的 VALUE。 因此,在嘗試添加 KEY 和 VALUE 之前,由您來驗證 map。 您可以使用finalmapnode.containsKey(KEY); 驗證然后添加值。
編輯
只需檢查以下方法是否適合您!
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和Map 。
試試這個,看看。
謝謝!
HashMap<String, String> map = new HashMap<String, String>();
map.put("A", "1");
map.put("B", "2");
map.put("C", "2");
map.put("D", "3");
map.put("E", "3");
HashMap<String, String> mapNew = new HashMap<String, String>();
for(String s :map.keySet())
{
//String value = map.get(s);
System.out.println(s +"=="+map.get(s));
if(!mapNew.containsValue(map.get(s)))
{
mapNew.put(s, map.get(s));
}
}
System.out.println(mapNew);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.