蓝桥杯-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+" ");
		}
		
	
	}
}

	
相关推荐
元亓亓亓1 天前
LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
算法·leetcode·职场和发展
测试老哥1 天前
Selenium 使用指南
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
仙俊红1 天前
LeetCode每日一题,20250914
算法·leetcode·职场和发展
前端小超超1 天前
capacitor配置ios应用图标不同尺寸
ios·蓝桥杯·cocoa
睡不醒的kun2 天前
leetcode算法刷题的第三十四天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
吃着火锅x唱着歌2 天前
LeetCode 1446.连续字符
算法·leetcode·职场和发展
武子康2 天前
AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
人工智能·程序人生·ai·职场和发展·机器人·生活·具身智能
Nan_Shu_6142 天前
Web前端面试题(1)
前端·面试·职场和发展
YuTaoShao2 天前
【LeetCode 每日一题】3000. 对角线最长的矩形的面积
算法·leetcode·职场和发展
007php0073 天前
Redis高级面试题解析:深入理解Redis的工作原理与优化策略
java·开发语言·redis·nginx·缓存·面试·职场和发展