面向对象语言(JAVA)——集合(Map(键-值对)代码实现理解)

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


目录

Map的最明显的特性 

Map的介绍

Map的特性

Map的用法

输出Map中的数据 

方法1:法一

方法二:法二


Map的最明显的特性 

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

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

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

Map的介绍

Map 是一种键-值对(key-value)集合 ,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()+" ");
        }
    }
}

输出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()+" ");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lungcen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值