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

	
相关推荐
lsc_blog16 小时前
年终自评别贴提交记录,把技术产出讲成变化
数据库·面试·职场和发展·跳槽·求职招聘
十二4 天前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
Pniubi4 天前
力扣560.和为k的子数组
算法·leetcode·职场和发展
Pniubi4 天前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
MUSHANGXS5 天前
大模型时代的新蓝海-基于OS底层的AI-Agent应用
人工智能·职场和发展·交互
Yuzhiyuxia5 天前
【AI Agent面试系列】上下文管理1
人工智能·面试·职场和发展
青少儿编程课堂5 天前
蓝桥杯青少组省考(11/9报名截止·11/22开考)+电子学会图形化考级+信息素养大赛:校园极速跑酷闯关解析
蓝桥杯·scratch·图形化编程·信息素养大赛·电子学会考级
CoderYanger5 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)
java·数据库·spring·面试·职场和发展·java-ee·mybatis
lsc_blog6 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github