A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MengDeKaiShi 中级黑马   /  2015-1-2 22:32  /  988 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.        Map<K,V>接口
接口 Map<K,V>
                  类型参数:
                                  K - 此映射所维护的键的类型
                                  V - 映射值的类型
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

                  组成结构:键(key),值(value)
                  对应关系:一一对应
                  结构特性:键不可以重复,值允许重复
                  遍历方式:键集、值集、通过键值的映射关系去遍历Map

Map最大的优点:体现了对应关系
  
Map和Collection的区别:
          Map:键值对,键不能重复
          Collection:存储单独的对象,存储的元素能否重复根据具体的实现类来确定

注意:Map集合中的具体实现类的数据结构,是针对键有效

  
  1.成员方法:
  (1)添加
                  V put(K key,V value):当key在集合中不存在时,添加元
素;当key存在,替换元素
                  void putAll(Map m):从指定Map集合中将所有键值对复制到当前集
合中
  (2)删除
                  void clear():清除所有键值对数据(太暴力了,不建议用)
                V remove(Object key):根据指定的键删除键值对
  (3)判断
                  boolean containsKey(Object key):判断指定键在集合中是否存在
                  boolean containsValue(Object value):判断指定值在是否存在
                  boolean isEmpty():判断集合是否为空
  (4)获取
                          Set<Map.Entry<K,V>> entrySet():返回键值对对象的集合
                          Object get(Object key):根据键获取值
                          Set<K> keySet():返回所有键的集合
                          Collection<V> values():返回所有值的集合
  (5)长度
                          int size():获取长度(键值对对数)       
  
2.代码示例
(1)基本方法的使用
public class MapDemo {
        public static void main(String[] args) {
                // 创建集合对象
                Map<String, String> map = new HashMap<String, String>();

                // 添加元素
                map.put("java001", "张三");
                map.put("java002", "李四");
                map.put("java003", "王五");

                // 输出集合
                System.out.println(map);

                // V put(K key,V value)
                // 在添加元素的时候,如果这个键不存在,则添加,返回null
                // 如果键存在,就替换,将被替换的值返回
        System.out.println("put:" + map.put("java001", "张三三"));
                // 添加时,键唯一,值可以不唯一
                System.out.println("put:" + map.put("java004", "李四"));
                // 输出添加后的集合
                System.out.println("添加后的集合:" + map);
                System.out.println("--------------------");

                // 根据指定的键删除键值对,并返回删除的值
                System.out.println("remove:" + map.remove("java001"));
                // 输出删除后的集合
                System.out.println("remove后的集合:" + map);
                System.out.println("--------------------");

                // 判断键是否存在
                System.out.println("containsKey:" +
map.containsKey("java002"));
                // 判断值是否存在
                System.out.println("containsValue:" +
map.containsValue("李四"));
                System.out.println("--------------------");

                // 获取长度(键值对对数)
                System.out.println("size:" + map.size());
                System.out.println("--------------------");

                // 遍历所有的key
                Set<String> keys = map.keySet();
                for (String s : keys) {
                        System.out.println(s);
                }
                System.out.println("--------------------");

                // 遍历所有的值
                Collection<String> values = map.values();
                for (String s : values) {
                        System.out.println(s);
                }
                System.out.println("--------------------");

                // 清除所有键值对数据
                map.clear();
                // 输出清除后的集合
                System.out.println("清除后的集合:" + map);
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马