Java算法竞赛之getOrDefault()--哈希表最常用API!

news2024/12/23 9:57:05

解释:

 

    for (char ch : magazine.toCharArray()) {  
            charCount.put(ch, charCount.getOrDefault(ch, 0) + 1);  
        }  

在Java中,HashMap 是一个用于存储键值对的数据结构,其中每个键都是唯一的。put 方法用于将指定的键与值放入 HashMap 中。如果键已经存在,则更新其对应的值;如果键不存在,则添加新的键值对。

charCount.put(ch, charCount.getOrDefault(ch, 0) + 1); 这行代码做了以下几件事情:

  1. charCount.getOrDefault(ch, 0)
    • getOrDefault 是 HashMap 的一个方法,它接受两个参数:一个键和一个默认值。
    • 如果该键(在这个例子中是字符 ch)在 HashMap 中存在,则返回该键对应的值。
    • 如果该键不存在,则返回提供的默认值(在这个例子中是 0)。
  2. + 1
    • 将 getOrDefault 方法返回的值加 1。这实际上是在更新字符 ch 的计数。
    • 如果 ch 是第一次出现,那么 getOrDefault 返回 0,然后 0 + 1 等于 1,表示 ch 现在出现了 1 次。
    • 如果 ch 已经出现过,那么 getOrDefault 返回它之前的计数,然后该计数加 1
  3. charCount.put(ch, ...)
    • 最后,使用更新后的计数作为值,将字符 ch 作为键,调用 put 方法将其放入 HashMap 中。
    • 如果 ch 之前已经存在,这将更新它的计数。
    • 如果 ch 之前不存在,这将添加一个新的键值对。

这种方法非常适用于统计字符出现的次数,因为你可以在不关心字符是否已存在的情况下,直接增加其计数。如果字符已存在,getOrDefault 会返回它当前的计数,并允许你更新它;如果字符不存在,getOrDefault 会返回 0,然后你可以将其添加到 HashMap 中并设置计数为 1(实际上是 0 + 1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI控制工业机器人入门教程

简介 AI控制的工业机器人正在改变现代制造业的面貌。与传统的编程控制不同,AI使机器人能够通过感知环境、自主决策和学习不断优化自身的操作。这篇教程将介绍实现AI控制工业机器人的必要知识和技能,帮助读者从基础开始构建起AI控制机器人的理解和能力。…

TypeScript新手学习教程--接口

TypeScript 也支持接口,跟Java类似,这对于学习过java,c#,php语言的人更容易上手,虽然类似,但是也有不同,下面开始学习。 1、 接口声明 TypeScript的核心原则之一是对值所具有的结构进行类型检…

anaconda(jupyter)安装教程

目录 一、下载anaconda安装包 二、安装程序 三、怎么使用 四、把jupyter界面语言修改成中文 一、下载anaconda安装包 anaconda官网:下载 Anaconda Distribution |蟒蛇 清华大学开源软件镜像站官网:清华大学开源软件镜像站 | Tsinghua Open Source M…

Linux服务部署,遇到的各种问题之一(测试篇)

最近服务器需要搬迁,所有的服务都需要迁移,从初始化数据盘,到服务部署的各种细节,下面我们一一来说 初始化数据盘就不用说了,大概率,作为测试接触不到。 今天来说是ubuntu显示的中文文件乱码问题如何解决…

SpringBoot集成Mongodb实现增删改查操作

目录 一、Mongodb概念 二、SpingBoot集成Mongodb 三、实现增删改查操作 一、Mongodb概念 MongoDB是一个开源的文档型数据库,属于NoSQL数据库中的一种。它使用BSON(类似于JSON)格式存储数据,具有高性能、高可用性和易于扩展的特…

QT--文本框 QLineEdit、qtextedit

在Qt中,文本框(QLineEdit 或 QTextEdit)和标签(QLabel)是两种不同的部件(widget),它们的主要区别在于用途和功能: QLabel(标签) 用途&#xff1…

JVM(HotSpot):直接内存及其使用建议

文章目录 一、什么是直接内存?二、特点三、使用案例四、直接内存的管理 一、什么是直接内存? Direct Memory:系统内存 普通IO,运行原理图 磁盘到系统内存,系统内存到jvm内存。 NIO,运行原理图 划分了一块…

『Mysql集群』Mysql高可用集群之主从复制 (一)

Mysql主从复制模式 主从复制有一主一从、主主复制、一主多从、多主一从等多种模式. 我们可以根据它们的优缺点选择适合自身企业情况的主从复制模式进行搭建 . 一主一从 主主复制 (互为主从模式): 实现Mysql多活部署 一主多从: 提高整个集群的读能力 多主一从: 提高整个集群的…

等级保护测评师练习卷31

等级保护初级测评师试题31 姓名: 成绩: 一、判断题(10110分) 1.等级测评采用基本方法是访谈、测试、验证()访谈、核查、测试 2.等级保护对象是由…

HarmonyOS 应用级状态管理(LocalStorage、AppStorage、PersistentStorage)

HarmonyOS 应用级状态管理 1. LocalStorage:页面级UI状态存储 1.1 概念 LocalStorage是页面级的UI状态存储,通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。LocalStorage也可以在UIAbility内,页面间共享状态。 应用程…

【Linux】Linux下的Makefile基本操作

1.Makefile与 make介绍 在Linux中, Makefile 是⼀个⽂件, 令会在当前⽬录下找 make 是⼀个指令,当使⽤ Makefile ⽂件从⽽执⾏内部的内容 2.创建第一个 Makefile并使用make ⾸先,在当前⽬录下创建⼀个makefile文件 接下来在同级…

动态规划一>珠宝的最高价值

1.题目: 2.解析: 代码: /**1.创建dp表2.初始化3.填表4.返回*/public int jewelleryValue(int[][] frame) {int m frame.length, n frame[0].length;int[][] dp new int[m1][n1];//虚拟节点的值直接为0满足条件,已经初始化好…

字典树 计数问题(含 2022 icpc杭州 K)

//最近学了字典树,补一下 1.概念和实现 首先,字典树是一棵树(废话),边表示字母,从根到叶子节点所有边的顺序组合表示字目排列顺序。 看一下图明白很多: 例如:abc这个字母排序&am…

MybatisWebApp

如何构建一个有关Mybatis的Web&#xff1f; 在这里给出我自己的一些配置。我的TomCat版本&#xff1a;10.1.28 &#xff0c;IDEA版本&#xff1a;2024.1.4 Pom.XML文件 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/200…

Linux platform子系统和设备树

1 Linux platform子系统 在Linux 2.6内核中&#xff0c;提出了总线、设备、驱动的架构&#xff0c;目的是让我们写出来的驱动通用性更强。 arm核内部总线结构&#xff1a; 1.1 核心思想 将设备的信息从驱动中分离出来&#xff0c;我们需要在操作系统中&#xff0c;添加设备…

【H2O2|全栈】JS入门知识(二)

目录 JS 前言 准备工作 运算符 算数运算符 比较运算符 自增、自减运算符 逻辑运算符 运算符的优先级 分支语句 if-else语句 switch语句 三元表达式 结束语 JS 前言 本系列博客主要分享JavaScript的基础语法知识&#xff0c;本期为第二期&#xff0c;包含一些简…

平时使用Xshell能连接虚拟机,现在突然连接不上

问题&#xff1a;平时使用Xshell能连接虚拟机&#xff0c;现在突然连接不上&#xff0c;使用ip addr 命令查看ip地址 ens33 接口状态为 DOWN&#xff0c;没有分配IP地址&#xff0c;这通常意味着该网络接口未激活或存在配置问题。&#xff08;因为平时能连接&#xff0c;就说明…

mysql 09 独立表空间结构

表空间中的页实在是太多了&#xff0c;为了更好的管理这些页面&#xff0c;设计 InnoDB 的大叔们提出了 区 &#xff08;英文名&#xff1a; extent &#xff09;的概念。对于16KB的页来说&#xff0c;连续的64个页就是一个 区 &#xff0c;也就是说一个区默认占用1MB空间大小。…

农作物苹果叶片病虫害识别数据集

农作物苹果叶片病虫害识别数据集 一、引言 农作物病虫害是影响农业生产的重要因素之一&#xff0c;其中苹果作为广泛种植的水果品种&#xff0c;其叶片病虫害问题尤为突出。为了有效应对苹果叶片病虫害&#xff0c;提高苹果产量和品质&#xff0c;农业科研机构和学者不断开展…

2024软考网络工程师笔记 - 第4章.局域网和城域网

文章目录 局域网基础1️⃣局域网和城域网体系架构 IEEE&#xff08;负责链路层&#xff09;2️⃣局域网拓扑结构 &#x1f551;CSMA/CD1️⃣CSMA/CD2️⃣CSMA/CD三种监听算法3️⃣冲突检测原理 &#x1f552;二进制指数退避算法1️⃣ 二进制指数退避算法 &#x1f553;最小帧长…