您好,登錄后才能下訂單哦!
Java中Map集合中是否會出現重復元素?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
寫個代碼測試一下:
package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重復的測試 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new HashMap(); map.put(s1, "abc123"); map.put(s2, "ABC456");//第二個會覆蓋第一個元素 //注意:map中key值不可重復,直接根據比較的是equals,只有equals相同則覆蓋 System.out.println(map.size()); System.out.println(map.get(s1)); } }
輸出結果:
1
ABC456
如果key重復,應該選取這個key對應的哪個值放入容器呢?做了一下測試:
public class Test { public static Map putSome(Map<String,String> map){ map.put("gender", "Male"); map.put("name", "Athor"); map.put("name", "Cindy"); map.put("name", "Billy"); map.put("from","China"); return map; } public static void main(String[] args) { System.out.println(putSome(new HashMap<String,String>())); System.out.println(putSome(new TreeMap<String,String>())); System.out.println(putSome(new LinkedHashMap<String,String>())); } }
輸出結果:
{name=Billy, gender=Male, from=China}
{from=China, gender=Male, name=Billy}
{gender=Male, name=Billy, from=China}
可見不論是Map的哪個子類,鍵name對應的值都是Billy,即最后一個name的鍵值對,它覆蓋了之前的name鍵值對。
關于Java中Map集合中是否會出現重復元素問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。