Map

来源:互联网 发布:淘宝上零食店铺排名 编辑:程序博客网 时间:2024/06/11 18:48

Map(HashMap)

对于Map集合,针对的是键有效,键是唯一的,值可以重复

面试题:
Map集合和Collection区别?
对于Map集合,是一种键值对的一种映射关系,键是唯一的,值是可以重复的!(双列集合) 简单记:夫妻对
hashMap,treeMap 子实现类
Collection:集合框架的顶层的根接口,有两个子接口:List(元素可以重复),set(元素不可以重复的),单列集合 简单记:光棍(11.11)
ArrayList,Vector,LinkedList treeSet,hashSet
Map集合的功能:

添加功能:    V put(K key,V value):添加元素(键和值的具体元素)     其他用法:如果键是第一次存储的时候,返回值null   (小细节)            如果键已经存在,再次存储的时候将第一次的值返回,并且后面的值覆盖掉前面的值    删除功能:        void clear()从此映射中移除所有映射关系(移出所有的键和值)        V remove(Object key):删除键,返回值    判断功能:        boolean containsKey(Object key):判断当前Map集合中是否存在key:键        boolean containsValue(Object value):判断当前Map姐中是否存在value:值    获取功能:        Set<Map.Entry<K,V>> entrySet()???        V get(Object key)返回指定键所映射的值    Set<K> keySet():获取所有的键的集合    Collection<V> values():获取所有的值的集合     长度功能        int size()

遍历方法:

   1.Set <String> keySet = map.keySet(); //获取键的集合     for (String key : keySet){        String value = map.get(key);     //通过键去找到值        System.out.prinltn(key+"="+value);      }   2.Set<Entry<String,String>> entrySet = map.entrySet();  //获取键值对的集合      for(Entry<String,String> me : entrySet){         String key = me.getKey();         String value = me.getValue();         System.out.println(key +"="+value);       }

代码:

 public static void main(String[] args) {        Map<String,String> map= new HashMap<String,String>();        //给集合中添加元素        //V put(K key,V value):添加元素(键和值的具体元素)           map.put("邓超", "孙俪") ;        map.put("黄晓明", "杨颖") ;        map.put("高圆圆", "赵又廷") ;        map.put("刘恺威", "杨幂") ;        map.put("周杰伦", "蔡依林") ;        /*         * 删除功能:

* void clear()从此映射中移除所有映射关系(移出所有的键和值)
* V remove(Object key):删除键,返回值
* */
// map.clear();
System.out.println(map.remove(“邓超”));
System.out.println(map);
/*
* 判断功能:
* boolean containsKey(Object key):判断当前Map集合中是否存在key:键
* boolean containsValue(Object value):判断当前Map姐中是否存在value:值
* */
System.out.println(map.containsKey(“邓超”));
System.out.println(map.containsValue(“赵又廷”));

        /*         * *长度功能

* int size()
* */
System.out.println(map.size());
}

结果:

孙俪
{周杰伦=蔡依林, 刘恺威=杨幂, 高圆圆=赵又廷, 黄晓明=杨颖}
false
true
4

代码:

  public static void main(String[] args) {      Map<String,String> hm = new HashMap<String,String>();        hm.put("邓超", "孙俪") ;        hm.put("黄晓明", "杨颖") ;        hm.put("高圆圆", "赵又廷") ;        hm.put("刘恺威", "杨幂") ;        hm.put("周杰伦", "蔡依林") ;        /*         * map集合的遍历 *       *      思路:map---夫妻对 *              1)获取所有的丈夫的集合 *              2)让没有给丈夫找自己妻子 *              3)将所有的丈夫和妻子的值就拿到了 *  *      转换: *          1)获取所有的键的集合keySet()(这种比较常用) *          2)遍历键的集合,让键找值 *          3)输出就可以了         * */    Set<String> keySet = hm.keySet();    for(String s :keySet){        String ss = hm.get(s);        System.out.println(s+"="+ss);    }    /**     *      * map集合的遍历:     *      思路;     *          1)获取所有的结婚证的集合     *          2)遍历所有结婚证的集合,     *          3)通过结婚证集合获取丈夫的值,在通过结婚证的集合获取妻子的值     *      *      转换:     *          1)获取键值对对象的集合     *          2)遍历键值对对象的集合,     *          3)通过键值对对象找键和值     * 问题:如果获取键值对对象呢?谁代表他?     *      Set<Map.Entry<K,V>> entrySet()获取键值对对象(存在地址值)     * */    System.out.println("**********************");    Set<Entry<String, String>> entrySet = hm.entrySet();    for(Entry<String, String> entry:entrySet){        String key = entry.getKey();        String value = entry.getValue();        System.out.println(key+"="+value);    }}

结果:

周杰伦=蔡依林
刘恺威=杨幂
高圆圆=赵又廷
邓超=孙俪
黄晓明=杨颖


周杰伦=蔡依林
刘恺威=杨幂
高圆圆=赵又廷
邓超=孙俪
黄晓明=杨颖

原创粉丝点击