章节七、5-Maps

一、向map集合中添加元素 map.put

package ZangJie7;

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

public class MapsDemo {
    /*
     * Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
     * Map.Entery存储键值对的映射关系:
     *     例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
     *         着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
     * map也是接口,与set、list一样Java中已经写好了它的实现类。
     * */
    public static void main(String[] args) {
//        使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "BMw");
        map.put(6, "AoDi");
        map.put(4, "HonDo");
        System.out.println(map);
    }

}

允许结果为:

二、如何取出map元素中的值

package ZangJie7;

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

public class MapsDemo {
    /*
     * Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
     * Map.Entery存储键值对的映射关系:
     *     例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
     *         着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
     * 键是唯一的不可重复,值是可以重复的
     * map也是接口,与set、list一样Java中已经写好了它的实现类。
     * */
    public static void main(String[] args) {
//        使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "BMw");
        map.put(6, "AoDi");
        map.put(4, "HonDo");
        
//        新建一个变量来接受map中的值,括号中表示的是key
        String value1 = map.get(1);
        String value2 = map.get(2);
//        打印values1中的接收到的值
        System.out.println("键存在的情况打印的结果为:"+value1);
//        如果键不存在的情况下,打印的结果为null
//        因为机会中存储的是对象,引用数据类型默认值为空
        System.out.println("键不存在的情况打印的结果为:"+value2);
    }

}

允许结果为:

三、键是唯一的不可重复,值是可以重复的

1、值相同,键不同

package ZangJie7;

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

public class MapsDemo {
    /*
     * Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
     * Map.Entery存储键值对的映射关系:
     *     例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
     *         着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
     * 键是唯一的不可重复,值是可以重复的
     * map也是接口,与set、list一样Java中已经写好了它的实现类。
     * */
    public static void main(String[] args) {
//        使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "BMw");
        map.put(6, "AoDi");
        map.put(4, "HonDo");
        
//        新建一个变量来接受map中的值,括号中表示的是key
        String value1 = map.get(1);
        String value2 = map.get(2);
//        打印values1中的接收到的值
        System.out.println("键存在的情况打印的结果为:"+value1);
//        如果键不存在的情况下,打印的结果为null
//        因为机会中存储的是对象,引用数据类型默认值为空
        System.out.println("键不存在的情况打印的结果为:"+value2);
        
//        键是唯一的不可重复,值是可以重复的
        map.put(2, "BMw");
        String value3 = map.get(2);
        System.out.println("值相同,键不同打印的结果为:"+value3);
    }

}

允许结果为:

2、键相同,值不同

package ZangJie7;

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

public class MapsDemo {
    /*
     * Maps为双列集合,存储元素都是成对存储,形式为“键值对”。
     * Map.Entery存储键值对的映射关系:
     *     例如:map中存储的键值对为“丈夫:妻子”,丈夫“张三”作为键对应妻子为“小红”,而Entery存储
     *         着这种对应关系,Entery就像结婚证一样,上面有他们的信息。
     * 键是唯一的不可重复,值是可以重复的
     * map也是接口,与set、list一样Java中已经写好了它的实现类。
     * */
    public static void main(String[] args) {
//        使用“多态”的形式来创建它的子类对象,括号中表示键和值的类型<键:值>
        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1, "BMw");
        map.put(1, "QQ");
        map.put(6, "AoDi");
        map.put(4, "HonDo");
        
//        新建一个变量来接受map中的值,括号中表示的是key
        String value1 = map.get(1);
        System.out.println("值相同,键不同打印的结果为:"+value1);

    }

}

运行结果为(值“QQ”覆盖了"BWm",键相同,值覆盖):

三、Map介绍(不要奇怪为什么在这里放入map介绍,完全是为了凑字数):

Java 自带了各种 Map 类。这些 Map 类可归为三种类型:

1. 通用Map,用于在应用程序中管理映射,通常在 java.util 程序包中实现

HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap

2. 专用Map,通常我们不必亲自创建此类Map,而是通过某些其他类对其进行访问

java.util.jar.Attributes、javax.print.attribute.standard.PrinterStateReasons、java.security.Provider、java.awt.RenderingHints、javax.swing.UIDefaults

3. 一个用于帮助我们实现自己的Map类的抽象类

AbstractMap

原文地址:https://www.cnblogs.com/luohuasheng/p/10643756.html