HashMap添加順序和取值順序不一致


代碼:
@Test
public void map(){
Map<String,Integer> map = new HashMap<>();
map.put("2",22);
map.put("3",12);
map.put("王五",23);
map.put("1",22);
Set<Map.Entry<String, Integer>> entries = map.entrySet();

for (Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();iterator.hasNext();){
Map.Entry<String, Integer> next = iterator.next();
System.out.println(next.getKey()+"=="+next.getValue());
}
}
結果:

1==22
2==22
3==12
王五==23

hashmap底層使用的是數組加鏈表,所以當你添加數據后會把key的值放在通過哈希算法散列后的對象的數組坐標上,所以取得的值是按哈希表來取的,所以和放入的順序無關。要是想有序的取值,可以把

Map<String,Integer> map = new HashMap<>();中HashMap改為LinkedHashMap


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM