Map集合

本文介绍了HashMap类的基本概念,如作为散列表的特性、键值对操作方法(put、get、size等),以及在两个例题中的应用,包括找出出现频率最大的数和小明和完美序列问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.HashMap类的特点:

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

2.访问速度快,最多允许一条记录的键为null,不允许线程同步

3.无序

二.格式:

Map<Integer,Integer> map=new HashMap<Integer,Integer>();

三.常用方法:

1.Object put(Object key,Object value)

        将键值映射存放到Map集合中

2.Object get(Object key)

        返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null

3.int size( )

        返回此映射中的键-值映射关系数

4.Set entrySet( )

        将Map集合中的每个键值转换为一个Entry对象,并返回所有Entry对象组成的Set集合

5.getOrDefault(Object key, Object defaultValue)

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

四.例题:

1.输入一个数字n,而后输入一个长度为n的数组,输出出现频率最大的数,如有多个数出现频率最大,从小到大依次输出

public static void main(String[] args)
{
	Scanner scan = new Scanner(System.in);
    //在此输入您的代码...
	int n=scan.nextInt();
	Map<Integer,Integer> map=new HashMap<Integer,Integer>();
	for(int i=0;i<n;i++)
	{
		int a=scan.nextInt();
        //(数字,数字的出现频率)->(键,值)
		map.put(a,map.getOrDefault(a,0)+1);
	}
	int max=0;
	for(Entry<Integer,Integer>entry:map.entrySet())
	{
		max=Math.max(max,entry.getValue());//获取最大的出现频率
	}
	List<Integer>list=new ArrayList<Integer>();
	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+" ");
	}
}

2.小明和完美序列

	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
		int n=scan.nextInt();
		HashMap<Integer,Integer> map=new HashMap<Integer, Integer>();
		for(int i=0;i<n;i++)
		{
			int a=scan.nextInt();
			map.put(a,map.getOrDefault(a,0)+1);
		}
		int count=0;
		for(Entry<Integer,Integer>entry:map.entrySet())
		{
            //若数字的值比其出频率小,则删去多余的数
			if(entry.getKey()<entry.getValue())
			{
				count+=entry.getValue()-entry.getKey();
			}
            //若数字的值比其出频率大,则直接删去这个数
			if(entry.getKey()>entry.getValue())
			{
				count+=entry.getValue();
			}
		}
		System.out.print(count);
        scan.close();
    }

内容概要:本文档是Kenwood TK-6110 VHF FM收发器的操作手册,详细介绍了设备的基本功能、安装步骤和操作指南。手册首先感谢用户选择Kenwood产品,并强调了设备的安全性和合规性,包括FCC警告和政府法律禁止未经授权的无线电台操作。接着,手册逐步指导用户进行设备的拆箱检查、安装准备(如工具、电源连接)、安装步骤以及熟悉设备的前面板、后面板和麦克风布局。此外,还涵盖了基本操作(如开关机、音量调整、频道选择和通话)以及辅助功能(如定时断电、忙道锁定、双音多频呼叫等)。最后,提供了关于DTMF呼叫(手动拨号、重拨、自动拨号)的具体操作步骤。 适合人群:适用于需要使用Kenwood TK-6110 VHF FM收发器的专业用户或技术人员,特别是那些负责安装和维护移动通信设备的人员。 使用场景及目标:①帮助用户正确安装和配置Kenwood TK-6110 VHF FM收发器,确保其在车辆或其他移动平台上安全可靠地运行;②指导用户掌握设备的基本操作技能,如频道选择、通话、信号发送等;③提供详细的辅助功能设置说明,使用户能够充分利用设备的各种高级功能,如定时断电、忙道锁定、双音多频呼叫等。 其他说明:用户应仔细阅读并遵守所有安全警告和操作指南,以避免潜在的危害和法律问题。建议在安装和使用过程中咨询授权经销商或专业技术人员,以确保设备的正常运行和最佳性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值