蓝桥杯-Map集合

Map集合实例化

Map集合实例化步骤

1.导包,导入java.util.Map包

2.通过HashMap实现类创建对象

3.语法格式如下

Map <引用数据类型,引用数据类型>map=new HashMap<>();

HashMap类的特点

1.HashMap是一个散列表,它存储的内容是键值对(key-value)映射。

2.HashMap实现了Map接口,根据建的HashCode值存储数据,具有很快的访问熟读,最多允许一条记录的键为null,不支持线程同步

3.HashMap是无序的,即不会记录插入的顺序。

常用方法

1 put(K key,V value)

将键(key)/值(value)映射存放在Map集合中

2 get(Object key)

返回指定键所映射的值,没有该Key对应的值则返回Null,即获得Key对应的value

3 size()

返回Map集合中的数据数量,准确说是返回key-value的组数。

4 entrySet()

将Map集合每个Key-value转换为一个Entry对象并返回由所有的Entry对象组成的Set集合

5 getOrDefault (K key,Object value)

方法获取指定key对应的value,如果找不到key,则返回设置的默认值。

int c=map.getOrDefault(1,0);//查找1指定key有没有得应的值,没有返回0.

System.out.println(c);

java 复制代码
package AAA;
import java.nio.file.attribute.AclEntry;
import java.util.*;
import java.util.Map.Entry;
public class Passage2 {
	public static void main(String args[]) {
		Map<Integer,Integer> map=new HashMap<>();
		//键和值
		map.put(0, 1);//map不记录插入顺序,是无序的
		map.put(2, 5);
		map.put(3, 4);
		map.get(2);
		System.out.println(map.get(1)+" "+map.get(2));
		System.out.println(map.size());
		for(Entry<Integer,Integer>entry:  map.entrySet()) {
			System.out.println(entry.getKey()+" "+entry.getValue());
		}//通过entryset方法把Map转化为一个数组,通过增强for循环遍历map(Map集合转化为Set集合)
		int c=map.getOrDefault(1,0);//查找1指定key有没有得应的值,没有返回0.
		System.out.println(c);
		int d=map.getOrDefault(3,0);
	}

}

例题实战

题目:输入一个数字n,然后输入一个 为n(n<=1e5)的数组an(-1e9<=ai<=1e9)请你输出出现频率最大的数,如果有多个数频率最大,按从小到大依次输出。

示例:

输入 5 1 1 2 2 0

输出 1 2

示例:

输入 9 0 0 -1 -1 2 2 5 5 7

输出 0 -1 2 5

javascript 复制代码
package AAA;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.*;

public class Scheme {
	private static final String Integer = null;

	public static void main(String args[]) {
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		Map<Integer,Integer> map=new HashMap<>();
		for(int i=0;i<n;i++) {
			int a=scanner.nextInt();
			map.put(a, map.getOrDefault(a, 0)+1);//map存储每个数出现的次数
			
		}
		int max=0;
		for(Entry <Integer,Integer>entry:map.entrySet()) {
				max=Math.max(max, entry.getValue());
		}
		List <Integer> list=new  ArrayList<>();
		for(Entry <Integer,Integer>entry: map.entrySet()) {
			if(entry.getValue()==max) {
				list.add(entry.getKey());
			}
		}
		Collections.sort(list);
		for(int x:list) {
			System.out.print(x+" ");
		}
		
	
	}
}

	
相关推荐
希望有朝一日能如愿以偿27 分钟前
力扣题解(飞机座位分配概率)
算法·leetcode·职场和发展
TANGLONG2223 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
ya888g4 小时前
蓝桥等级考试C++组17级真题-2023-05-21
开发语言·c++·蓝桥杯
SZPU领跑6 小时前
第十二届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)(第一套)
stm32·单片机·算法·职场和发展·蓝桥杯
TANGLONG2228 小时前
【C语言】字符和字符串函数(2)
java·c语言·c++·python·考研·面试·蓝桥杯
Tlog嵌入式8 小时前
蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键
arm开发·stm32·单片机·mcu·物联网·蓝桥杯·iot
小迷糊糊NWCX11 小时前
【JAVA面试】关于接口
面试·职场和发展
奔跑的乌龟_12 小时前
第 17 场小白入门赛蓝桥杯
算法·蓝桥杯
xiao_fwuu20 小时前
LeetCode 918. 环形子数组的最大和
算法·leetcode·职场和发展
涛涛6号1 天前
力扣刷每日一题感想
算法·leetcode·职场和发展