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

目录

  • 前言
  • 函数方法
  • Map.Entry函数
  • 实战演练

前言

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

函数方法

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
接口中有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();
    }
}


你可能感兴趣的:(java,java,数据结构)