Map的常用方法

以下都是个人见解,如有错误,欢迎指正。

根据存储的方式,集合可以分为Collection集合接口(单个存储)和Map集合接口(键值对方式存储)。

Map接口,以键值对存储元素,无序不可重复。key和value都是存储Java对象的【内存地址】。

接下来对Map一些常用的方法进行介绍。


创建Map集合对象。以HashMap集合为例。

Map<Integer,String> a1=new HashMap<>();
//创建HashMap对象,key为Integer包装类,value为String类。引用a1.

V put(K key, V value) 【添加元素/键值对】

a1.put(1,"第一名");//这里的数字1使用字自动装箱。
a1.put(2,"第二名");
a1.put(3,"第三名");
a1.put(4,"第四名");

V remove(Object key) 【通过key,移除键值对】

        a1.remove(1);

V get(Object key) 【通过key获取对应value】

System.out.println(a1.get(4));//第四名

boolean containsValue(Object value) 【判断是否包含value】

System.out.println(a1.containsValue(10));//false

boolean containsKey(Object key) 【判断是否包含key】

        System.out.println(a1.containsKey(2));//true

boolean isEmpty()【判断键值对个数是否为空】

System.out.println(a1.isEmpty());//false

int size() 【获取键值对的个数】

        System.out.println(a1.size());//3

Set keySet() 【获取Map所有的key,返回一个Set集合】

        Set<Integer> a2=a1.keySet();//Integer为key的类型,key的集合为a2
        System.out.println(a2);//[2, 3, 4]

Collection values() 【获取Map所有的value,返回一个Collection】

Collection<String> collection=a1.values();
System.out.println(collection);//[第二名, 第三名, 第四名]

采用Set<Map.Entry<K,V>> entrySet() 和迭代器遍历。

       //所有元素是Map.Entry<K,V>类型。将key和value视为一个整体。
        Set<Map.Entry<Integer,String>> aa1=a1.entrySet();
        //用迭代器遍历
        Iterator<Map.Entry<Integer,String>> it1=aa1.iterator();
        while (it1.hasNext()){
            Map.Entry<Integer,String> point=it1.next();//得到每个整体元素
            Integer kkey=point.getKey();//得到key
            String vvalue=point.getValue();//得到value
            System.out.println(kkey+"--->"+vvalue);
        }// 2--->第二名 3--->第三名 4--->第四
        //注意,这里不能简写为 System.out.println(it1.next().getKey()+"--->"+it1.next().getValue());
        //否则结果为2--->第三名 报错

采用Set<Map.Entry<K,V>> entrySet() 和增强for遍历。

        for (Map.Entry<Integer,String> aaa1:aa1){
            System.out.println(aaa1.getKey()+"--->"+aaa1.getValue());
        }// 2--->第二名 3--->第三名 4--->第四名

void clear() 【清空Map】

        a1.clear();
        System.out.println(a1.size());//0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值