集合-Map

HashMap:是Map接口最常用的实现类。HashMap中的键不能重复,如果重复,键对应的值被覆盖了;HashMap中的键和值都可以为null;键如果不存在,拿到的是一个null;不支持线程同步,当有多个线程同时写HashMap,可能导致数据不一致,可以使用Collection的synchronizedMap方法使其同步。

Map 接口提供了三种角度来分析 Map:

  • KeySet
  • Values
  • Entry

(1).KeySet

KeySet 是一个 Map 中键(key)的集合,可以通过 Map.keySet() 方法获得,以 Set 的形式保存,不允许重复,因此键存储的对象需要重写 equals() 和 hashCode() 方法。

(2).Values

Values 是一个 Map 中值 (value) 的集合,通过 Map.values() 方法获得,以 Collection 的形式保存,因此可以重复。

(3).Entry

Entry 是 Map 接口中的静态内部接口,表示一个键值对的映射,通过 Map.entrySet() 方法获得的是一组 Entry 的集合,保存在 Set 中,所以 Map 中的 Entry 也不能重复。

Entry 具有的方法:

getKey() , 获取这组映射中的键 key

getValue() , 获取这组映射中的值 value

setValue() , 修改这组映射中的值

hashCode() , 返回这个 Entry 的哈希值

equals() , 对比 key-value 是否相等

源代码:

 1 import java.util.HashMap;
 2 import java.util.Iterator;
 3 import java.util.Map;
 4 import java.util.Set;
 5 
 6 public class MapDemo {
 7     public static void main(String[] args) {
 8         Map<String,String> map=new HashMap<>();
 9         map.put("1","张三");
10         map.put("2","李四");
11         map.put("3","王五");
12         map.put("4","赵六");
13         map.put("4","赵六");
14         map.put(null,null);
15         Set set=map.keySet();
16         Iterator iterator=set.iterator();
17         while (iterator.hasNext()){
18             Object s=iterator.next();
19             Object name=map.get(s);
20             System.out.println("键:"+s+"值:"+name);
21         }
22     }
23 }

猜你喜欢

转载自www.cnblogs.com/2312947032zyk/p/10410096.html
今日推荐