美文网首页
Java 基础 37 Map集合

Java 基础 37 Map集合

作者: 小熊先生很不开心 | 来源:发表于2018-02-03 10:51 被阅读10次

1.1创建Map集合对象并添加元素

Map:

  • 将键映射到值的对象。
  • 一个映射不能包含重复的键;
  • 每个键最多只能映射到一个值。

举例:

 学号 |  姓名
 ----|----
it001 | 林青霞
it002 | 张曼玉
it003 | 王祖贤

1.1.1 案例代码

package com.itheima_01;

import java.util.HashMap;
import java.util.Map;

/*
 * Map:
 *      将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
 * 
 * 举例:学生的学号和姓名
 *      it001   林青霞
 *      it002   张曼玉
 *      it003   王祖贤
 * 
 * public interface Map<K,V>
 * 
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        //put(K key,V value):添加元素。
        map.put("it001", "林青霞");
        map.put("it002", "张曼玉");
        map.put("it003", "王祖贤");
        
        //输出集合对象
        System.out.println(map);
    }
}

1.2 Map集合的成员方法

  • V put(K key,V value):添加元素
  • V remove(Object key):根据键删除键值对元素
  • void clear():移除所有的键值对元素
  • boolean containsKey(Object key):判断集合是否包含指定的键
  • boolean containsValue(Object value):判断集合是否包含指定的值
  • boolean isEmpty():判断集合是否为空
  • int size():返回集合中的键值对的对数

1.2.1 案例代码

package com.itheima_01;

import java.util.HashMap;
import java.util.Map;

/*
 * V put(K key,V value):添加元素
 * V remove(Object key):根据键删除键值对元素
 * void clear():移除所有的键值对元素
 * boolean containsKey(Object key):判断集合是否包含指定的键
 * boolean containsValue(Object value):判断集合是否包含指定的值
 * boolean isEmpty():判断集合是否为空
 * int size():返回集合中的键值对的对数
 * 
 * Map集合中的实现类的数据结构只针对键有效。
 */
public class MapDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //V put(K key,V value):添加元素
        //如果键是第一次存储,就直接存储元素,返回null
        //如果键不是第一次存储,就用值把以前的值替换,返回以前的值
//      System.out.println("put:"+map.put("张无忌", "周芷若"));
//      System.out.println("put:"+map.put("张无忌", "赵敏"));
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");
        
        //V remove(Object key):根据键删除键值对元素
//      System.out.println("remove:"+map.remove("郭靖"));
//      System.out.println("remove:"+map.remove("郭襄"));
        
        //void clear():移除所有的键值对元素
        //map.clear();
        
        //boolean containsKey(Object key):判断集合是否包含指定的键
//      System.out.println("containsKey:"+map.containsKey("郭靖"));
//      System.out.println("containsKey:"+map.containsKey("郭襄"));
        
        //boolean containsValue(Object value):判断集合是否包含指定的值 自己练习
        
        //boolean isEmpty():判断集合是否为空
        //System.out.println("isEmpty:"+map.isEmpty());
        
        //int size():返回集合中的键值对的对数
        System.out.println("size:"+map.size());
        
        //输出集合对象
        System.out.println(map);
    }
}

1.3 Map集合的获取功能测试

  • V get(Object key):根据键获取值
  • Set<K> keySet():获取所有键的集合
  • Collection<V> values():获取所有值的集合

1.3.1 案例代码


package com.itheima_01;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * V get(Object key):根据键获取值
 * Set<K> keySet():获取所有键的集合
 * Collection<V> values():获取所有值的集合
 */
public class MapDemo3 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");
        map.put("张无忌", "赵敏");
        
        //V get(Object key):根据键获取值
        System.out.println("get:"+map.get("张无忌"));
        System.out.println("get:"+map.get("张三丰"));
        System.out.println("--------------------");
        
        //Set<K> keySet():获取所有键的集合
        Set<String> set = map.keySet();
        for(String key : set) {
            System.out.println(key);
        }
        System.out.println("--------------------");
        
        //Collection<V> values():获取所有值的集合
        Collection<String> values = map.values();
        for(String value : values) {
            System.out.println(value);
        }
    }
}

1.4 Map集合的遍历之键找值

  Map集合的遍历

  • 思路:Map看成是一个夫妻对的集合
    • 把所有的丈夫给集中起来
    • 遍历丈夫的集合,获取到每一个丈夫
    • 根据丈夫去找对应的妻子
  • 转换:
    • 获取所有键的集合
    • 遍历键的集合,获取到每一个键
    • 根据键去找值

1.4.1 案例代码

package com.itheima_02;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * Map集合的遍历
 * 
 * 思路:Map看成是一个夫妻对的集合
 *      A:把所有的丈夫给集中起来
 *      B:遍历丈夫的集合,获取到每一个丈夫
 *      C:根据丈夫去找对应的妻子
 * 
 * 转换:
 *      A:获取所有键的集合
 *      B:遍历键的集合,获取到每一个键
 *      C:根据键去找值
 */
public class MapDemo {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");
        map.put("张无忌","赵敏");
        
        //获取所有键的集合
        Set<String> set = map.keySet();
        //遍历键的集合,获取到每一个键
        for(String key : set) {
            //根据键去找值
            String value = map.get(key);
            System.out.println(key+"---"+value);
        }
    }
}

1.5 Map集合的遍历之键值对对象找键和值

  Map集合遍历的方式2

  • 思路:
    • 获取所有结婚证的集合
    • 遍历结婚证的集合,得到每一个结婚证
    • 根据结婚证获取丈夫和妻子
  • 转换:
    • 获取所有键值对对象的集合
    • 遍历键值对对象的集合,得到每一个键值对对象
    • 根据键值对对象获取键和值

1.5.1 案例代码


package com.itheima_02;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 * Map集合遍历的方式2
 * 
 * 思路:
 *      A:获取所有结婚证的集合
 *      B:遍历结婚证的集合,得到每一个结婚证
 *      C:根据结婚证获取丈夫和妻子
 * 
 * 转换:
 *      A:获取所有键值对对象的集合
 *      B:遍历键值对对象的集合,得到每一个键值对对象
 *      C:根据键值对对象获取键和值
 */
public class MapDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        Map<String,String> map = new HashMap<String,String>();
        
        //添加元素
        map.put("郭靖","黄蓉");
        map.put("杨过","小龙女");
        map.put("张无忌","赵敏");
        
        //获取所有键值对对象的集合
//      Set<Map.Entry<K,V>> entrySet()
//      获取键值对对象的集合
        Set<Map.Entry<String,String>> set = map.entrySet();
        //遍历键值对对象的集合,得到每一个键值对对象
        for(Map.Entry<String,String> me : set) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key+"---"+value);
        }
    }
}

1.6 Map 集合的两种遍历方式图解

Map.png

相关文章

  • Java 基础 37 Map集合

    1.1创建Map集合对象并添加元素 Map: 将键映射到值的对象。 一个映射不能包含重复的键; 每个键最多只能映射...

  • Java基础——集合体系Map详解

    Java基础——集合体系Map详解 上文中我们了解了集合体系中的单列集合:Java基础——集合以及Java集合——...

  • Java基础之Map集合

    ## Java基础之Map集合 Map集合是一种双列集合,存储形式为键值对的形式(Map集合中的键是唯一性的) 如...

  • Java集合框架解析(1) - 初识

    我们都知道在Java中,集合框架在Java基础中有很大的分量,集合中的Map、Collection 、List、S...

  • [翻译中]JAVA 集合接口介绍

    Java 集合接口源于两个最基础的接口 java.util.Collection 和 java.util.Map ...

  • Java基础—map集合

    Map接口的实现类为HashMap,Map接口定义的集合又称为查找表,用于存储“键值对”。Key可以看成Value...

  • 集合的一些源码分析

    java基础 hashmap原理 Java集合说一说吧set ,list,map都问了一遍 java中util包下...

  • day14 Map集合

    Map集合 Map集合是双列集合, 是一种一一对应关系,就是映射,Java提供 java,util.Map接口供我...

  • 集合详解

    Iterator:迭代器,它是Java集合的顶层接口(不包括 map 系列的集合,Map接口 是 map 系列集合...

  • 架构师之路

    手写算法 leetcode 掌握java基础类库 多线程,集合list, map https,tcp,udp mi...

网友评论

      本文标题:Java 基础 37 Map集合

      本文链接:https://www.haomeiwen.com/subject/ojfuzxtx.html