java之map函数详细分析(全)

前言

“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值

函数方法

1.实例化一个对象

Map<Integer, String> maps = new HashMap<Integer, String>();

则在添加的时候要一一对应类型,其他方法也类似

// 添加元素
maps.put(10,"A");
maps.put(20,"B");

如果实例类型为两个string

Map<String, String> maps = new HashMap<String, String>();

则在添加元素的时候也需要对应,其他方法也类似

maps.put("book","english");
maps.put("name","码农研究僧");

2.添加元素

maps.put(Object key, Object value);

3.修改元素

maps.replace(Object key, Object value);

4.删除元素

maps.remove(Object key);

5.此映射包含指定键的映射关系,则返回 true

boolean containsKey(Object key)

6.此映射将一个或多个键映射到指定值,则返回 true

boolean containsValue(Object value)

7.指定的对象与此映射是否相等

boolean equals(Object o)

8.判定值
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

get(Object key)

Map.Entry函数

Map.Entry是Map声明的一个内部接口
类型为Entry<K,V>
接口中有getKey(),getValue方法

1.遍历map的集合

冒号前面是集合中的元素,后面是集合
取出集合中的每个元素进行操作
map.entryset()这个方法返回的就是Entry的集合

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

2.遍历map的key和value值


Map<Integer, Integer> map = new HashMap<Integer, Integer>();
 
//遍历map中的键
for (Integer key : map.keySet()) {
    System.out.println("Key = " + key);
}
 
//遍历map中的值
for (Integer value : map.values()) {
    System.out.println("Value = " + value);
}

3.使用Iterator遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
 
while (entries.hasNext()) {
    Map.Entry<Integer, Integer> entry = entries.next();
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
 
}

4.通过键找遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for (Integer key : map.keySet()) {
    Integer value = map.get(key); 
    System.out.println("Key = " + key + ", Value = " + value);
 
}

实战演练

class Solution {
   

    public int majorityElement(int[] nums) {
       Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
        for (int num : nums) {
            if (!counts.containsKey(num)) {
                counts.put(num, 1);
            } else {
                counts.put(num, counts.get(num) + 1);
            }
        }

        Map.Entry<Integer, Integer> majorityEntry = null;
        for (Map.Entry<Integer, Integer> entry : counts.entrySet()) {
            if (majorityEntry == null || entry.getValue() > majorityEntry.getValue()) {
                majorityEntry = entry;
            }
        }

        return majorityEntry.getKey();
    }
}


  • 13
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农研究僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值