zoukankan      html  css  js  c++  java
  • Java API —— Map接口

    1、Map接口概述

            · 将键映射到值的对象
            · 一个映射不能包含重复的键
            · 每个键最多只能映射到一个值
     
    2、Map接口和Collection接口的不同
           ·  Map是双列的;Collection是单列的
           ·  Map的键唯一;Collection的子体系Set是唯一的
           ·  Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效
     
    3、Map集合的功能概述
      1)添加功能
        V put(K key,V value):添加元素(替换或修改功能)。
            如果键是第一次存储,就直接存储元素,返回null
            如果键不是第一次存在,就用新的值把以前的值替换掉,返回以前的值
      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():???
        V get(Object key):根据键获取值
        Set<K> keySet():获取集合中所有键的集合
        Collection<V> values():获取集合中所有值的集合
      5)长度功能
        int size():返回集合中的键值对的对数
     
     例子1:
    package mapdemos;
    import java.util.HashMap;
    import java.util.Map;
    /**
     * Created by gao on 15-12-21.
     */
    public class MapDemo {
        public static void main(String[] args) {
            // 创建集合对象
            Map<String, String> map = new HashMap<String, String>();
            // 添加元素
            // V put(K key,V value):添加元素
            map.put("A1","B1");
            map.put("A2","B2");
            map.put("A3","B3");
            map.put("A4","B4");
            // void clear():移除所有的键值对元素
            //map.clear(); // map:{}
            // V remove(Object key):根据键删除键值对元素,并把值返回
            //System.out.println("remove:"+map.remove("A3")); //remove:B3
            //System.out.println("remove:"+map.remove("A2")); //remove:B2
            // boolean containsKey(Object key):判断集合是否包含指定的键
            //System.out.println("containsKey:"+map.containsKey("A2")); //containsKey:true
            //System.out.println("containsKey:"+map.containsKey("A6")); //containsKey:false
            // boolean isEmpty():判断集合是否为空
            //System.out.println("isEmpty:"+map.isEmpty()); //isEmpty:false
            //int size():返回集合中的键值对的对数
            System.out.println("size:"+map.size()); //size:4
            // 输出集合名称
            System.out.println("map:" + map);//无序输出
        }
    }

    例子2:

    package mapdemos;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    /**
     * Created by gao on 15-12-21.
     */
    /*
     * 获取功能:
     * V get(Object key):根据键获取值
     * Set<K> keySet():获取集合中所有键的集合
     * Collection<V> values():获取集合中所有值的集合
     */
    public class MapDemo02 {
        public static void main(String[] args) {
            // 创建集合对象
            Map<String, String> map = new HashMap<String, String>();
            // 添加元素
            // V put(K key,V value):添加元素
            map.put("A1", "B1");
            map.put("A2", "B2");
            map.put("A3", "B3");
            map.put("A4", "B4");
            // V get(Object key):根据键获取值
            System.out.println("get:" + map.get("A3")); //get:B3
            System.out.println("get:" + map.get("A6")); //get:null
            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> col = map.values();
            for(String value : col){
                System.out.println(value);
            }
        }
    }
    例子3:Map集合的遍历
        方式1:根据键找值
            · 获取所有键的集合
            · 遍历键的集合,获取到每一个键
            · 根据键找值
    package mapdemos;
    /**
     * Created by gao on 15-12-21.
     */
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    /**
     * Map集合的遍历。
     * A:获取所有的键
     * B:遍历键的集合,获取得到每一个键
     * C:根据键去找值
     */
    public class MapDemo03 {
        public static void main(String[] args) {
            // 创建集合对象
            Map<String, String> map = new HashMap<String, String>();
            // 添加元素
            // V put(K key,V value):添加元素
            map.put("A1", "B1");
            map.put("A2", "B2");
            map.put("A3", "B3");
            map.put("A4", "B4");
            // 遍历
            // 获取所有的键
            Set<String> set = map.keySet();
            // 遍历键的集合,获取得到每一个键
            for (String key : set) {
                // 根据键去找值
                String value = map.get(key);
                System.out.println(key + "---" + value);
            }
        }
    }
    输出结果:
    A2---B2
    A1---B1
    A4---B4
    A3---B3
    例子4:Map集合的遍历
        方式2:根据键值对对象找键和值
            · 获取所有键值对对象的集合
            · 遍历键值对对象的集合,获取到每一个键值对对象
            · 根据键值对对象找键和值
    package mapdemos;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    /**
     * Created by gao on 15-12-21.
     */
    /**
     * Map集合的遍历:
     * A:获取所有键值对对象的集合
     * B:遍历键值对对象的集合,得到每一个键值对对象
     * C:根据键值对对象获取键和值
     */
    public class MapDemo04 {
        public static void main(String[] args) {
            // 创建集合对象
            Map<String, String> map = new HashMap<String, String>();
            // 添加元素
            // V put(K key,V value):添加元素
            map.put("A1", "B1");
            map.put("A2", "B2");
            map.put("A3", "B3");
            map.put("A4", "B4");
            // 获取所有键值对对象的集合
            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);
            }
        }
    }
    输出结果:
    A2---B2
    A1---B1
    A4---B4
    A3---B3

    4、Map集合遍历的两种方式比较图解

     
     
     
     
  • 相关阅读:
    lsmod-查看内核模块信息
    centos 7 下通过 conda 安装 cuda pytorch
    python 中文编码
    matplotlib
    How to determine the correct number of epoch during neural network training? 如何确定Epoch
    nvidia-smi Failed to initialize NVML: Driver/library version mismatch
    MySQL MAX函数:查询指定列的最大值
    mysql之group_concat函数详解
    @Param注解的用法解析@Param注解的用法解析
    【MySQL函数】replace()函数
  • 原文地址:https://www.cnblogs.com/yangyquin/p/5064229.html
Copyright © 2011-2022 走看看