本文實例講述了Java集合之HashMap用法。分享給大家供大家參考,具體如下:
HashMap是最常用的Map集合,它的鍵值對在存儲時要根據鍵的哈希碼來確定值放在哪里。
HashMap 中作為鍵的對象必須重寫Object的hashCode()
方法和equals()
方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.Map; import java.util.HashMap; public class lzwCode { public static void main(String [] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put( 1 , "Barcelona" ); map.put( 2 , "RealMadrid" ); map.put( 3 , "ManchesterUnited" ); map.put( 4 , "AC milan" ); map.put( 5 , null ); map.put( null , null ); //map.put(null, "Chelsea"); //可以運行鍵值都為空(如果鍵相同,后者覆蓋前者) System.out.println(map); System.out.print(map.keySet()+ " " ); //集合中所有鍵以Set集合形式返回 System.out.println(); System.out.print(map.values()+ " " ); //集合中所有鍵以Collection集合形式返回 System.out.println(); System.out.println( "集合大小:" +map.size()); System.out.println( "是否包含該鍵:" +map.containsKey( 2 )); //返回boolean System.out.println( "是否包含該值:" +map.containsValue( "Barcelona" )); //返回boolean System.out.println(map.isEmpty()); //不包含鍵-值映射關系,則返回true map.remove( 5 ); //刪除映射關系 System.out.println(map); map.clear(); //清空集合 System.out.println(map); } } |
控制臺結果:
HashMap的兩種遍歷方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.util.Map; import java.util.HashMap; import java.util.Iterator; public class lzwCode { public static void main(String [] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put( "Barcelona" , 1 ); map.put( "RealMadrid" , 2 ); map.put( "ManchesterUnited" , 3 ); map.put( "AC milan" , 4 ); map.put( "Chelsea" , 5 ); //第一種:(效率高) System.out.println( "第一種方法:" ); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); System.out.println( "鍵:" +key+ "<==>" + "值:" +val); } //第二種:(效率低) System.out.println( "第二種方法:" ); Iterator it = map.keySet().iterator(); while (it.hasNext()) { Object key = it.next(); Object val = map.get(key); System.out.println( "鍵:" +key+ "<==>" + "值:" +val); } //對于keySet只是遍歷了2次,一次是轉為iterator,一次就從HashMap中取出key所對于的value。 //對于entrySet只是遍歷了第一次,它把key和value都放到了entry中,所以快比keySet快些。 System.out.println( "For-Each循環輸出" ); //For-Each循環 for (Map.Entry<String, Integer> entry:map.entrySet()) { String key = entry.getKey().toString(); String val = entry.getValue().toString(); System.out.println( "鍵:" +key+ "<==>" + "值:" +val); } } } |
控制臺結果:
希望本文所述對大家java程序設計有所幫助。