首页 > 代码库 > java集合Map&HashMap

java集合Map&HashMap

http://blog.csdn.net/u011240877/article/category/6447444/1

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

  • KeySet:KeySet 是一个 Map 中键(key)的集合,以 Set 的形式保存,不允许重复,因此键存储的对象需要重写 equals() 和 hashCode() 方法。可以通过 map.keySet() 方法获得。  
  •      使用 keySet 遍历:    
  • Set set = map.keySet();
        for (Object key : set) {
            System.out.println(map.get(key));
        }
  •  

  • Values:Values 是一个 Map 中值 (value) 的集合,以 Collection 的形式保存,因此可以重复。可以通过map.values() 方法获得。
  •      使用 values 遍历:
  •      Collection values = map.values();
        Iterator iterator = values.iterator();
        while (iterator.hasNext()){
            System.out.println("value " + iterator.next());
        }
  • Entry:Entry 是 Map 接口中的静态内部接口,表示一个键值对的映射,例如key1-value1这一组映射关系。
  •      
    • getKey() , 获取这组映射中的键 key
    • getValue() , 获取这组映射中的值 value
    • setValue() , 修改这组映射中的值
    • hashCode() , 返回这个 Entry 的哈希值
    • equals() , 对比 key-value 是否相等

    通过 Map.entrySet() 方法获得的是一组 Entry 的集合,保存在 Set 中,所以 Map 中的 Entry 也不能重复。

    public Set<Map.Entry<K,V>> entrySet();
  •      

    使用 Entry 遍历

  • Set entrySet = map.entrySet();
        for (Object o : entrySet) {
            Map.Entry entry = (Map.Entry) o;
            System.out.println(entry);      //key=value
            System.out.println(entry.getKey() + " / " + entry.getValue());
        }
  • ******************************************************************************************************************************
  •  

java集合Map&HashMap