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);
javapackage 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
javascriptpackage 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+" "); } } }