本文实例讲述了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程序设计有所帮助。