Java的Map接口可以用来存储数据表的数据(类似姓名——成绩表)、可以用来存储登录的账号加密码(输入正确账号后检验密码是否正确)、可以用来……


目录

Map的最明显的特性 

Map的介绍

Map的特性

Map的用法

输出Map中的数据 

方法1:法一

方法二:法二


Map的最明显的特性 

Map类是一个用来解决保存映射关系的问题


假如有一个成绩单(姓名,成绩),用一个数组存储姓名,一个数组存储成绩,a[0]存姓名、b[0]存成绩。看似没有问题,但是这两者没有保存映射关系。数组无法保存具有映射关系的数据,如成绩表为语文——79,数学——80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。


HashMap就很好的解决了这个问题

Map的介绍

Map 是一种键-值对(key-value)集合


Map 集合里保存着两组值,一组值用于保存 Map 里的 key, 另外一组值用于保存 Map 里的 value, key 和 value 都可以是任何引用类型的数据 。

Map的特性

Map 的 key 不允许重复,value 可以重复,即同一个 Map 对象的任何两个 key 通过 equals 方法比较总是返回 false。


Map 中的 key 和 value 之间存在单向一对一关系,即通过指 定的 key,总能找到唯一的、确定的 value。

Map的用法

从 Map 中取出数 据时,只要给出指定的 key,就可以取出对应的 value。


Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。


其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

public class HashMapTest
{
    public static void main(String[] args)
    {
        HashMap hashMap =new HashMap();
        //hashMap表一对键值<K,V>
        hashMap.put("name","张三");
        hashMap.put("age","30岁");
        hashMap.put("id","12345");
        hashMap.put("number","12345678");
        hashMap.put("birth","12345");
        System.out.println("hashMap中的键值对:"+hashMap);
        hashMap.remove("id");//删除id这个键值
        System.out.println("hashMap修改后的键值对:"+hashMap);
        //根据K值来返回对应的V值,因为K值是唯一的
        System.out.println("name所对应的V值:"+hashMap.get("name"));
        System.out.println("输出hashMap中的K值:"+hashMap.keySet());//输出所有的K值
        System.out.println("输出hashMap中的V值:"+hashMap.values());//输出所有的V值
        Set set = hashMap.entrySet();//将HashMap以Set的形式输出
        System.out.println("输出内容:"+set);//直接输出内容

        Iterator iterator = set.iterator();
        System.out.print("一对一对键值的输出:");
        while (iterator.hasNext())
        {
            System.out.print(iterator.next()+" ");
        }
    }
}

java创建键值对 java中键值对存储对象_数据结构

输出Map中的数据 

方法1:法一

Iterator iterator1 = hashMap.keySet().iterator();
        while (iterator1.hasNext())
        {
            Object key = iterator1.next();
            Object val = hashMap.get(key);
            System.out.print(key+"=="+val+"\t");
        }

方法二:法二

Set set = hashMap.entrySet();//将HashMap以Set的形式输出
        Iterator iterator = set.iterator();
        System.out.print("一对一对键值的输出:");
        while (iterator.hasNext())
        {
            System.out.print(iterator.next()+" ");
        }