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