Java Program to Find the Frequency of All Duplicate Elements in an Array2025年3月26日 | 6分钟阅读 此 Java 程序查找并显示数组中所有重复元素的频率。通过使用 HashMap,该程序可以有效地计算每个组件的出现次数。然后,它会识别并输出出现次数超过一次的元素,有助于理解数据分布和识别数组中的重复项。 示例 1 输入: arr[] = {1, 2, 3, 2, 1, 4, 1} 输出: 以下是重复元素的频率 - 1 -> 3 2 -> 2 示例 2 输入: arr[] = {9, 8, 8, 7, 9, 7, 7} 输出: 以下是重复元素的频率 - 7 -> 3 8 -> 2 9 -> 2 方法:使用 HashMap代码中采用的方法是基于 HashMap 的方法,该方法可以有效地计算数组中元素的频率。它利用 HashMap 来存储和更新计数,然后根据其频率过滤和显示重复项。 算法步骤 1: 创建一个空的 HashMap 来存储 数组 中每个元素的频率。 步骤 2: 遍历数组中的每个元素并更新其在 HashMap 中的计数。如果该组件尚未存在,则将其计数初始化为 1。 步骤 3: HashMap 填充完毕后,准备识别和显示重复元素。 步骤 4: 遍历 HashMap 中的条目,并检查每个元素的频率是否大于 1,这表示存在重复项。 步骤 5: 打印重复的元素及其频率。 让我们在 Java 程序中实现上述步骤。 文件名:DuplicateFrequency.java 输出 Duplicate elements and their frequencies: Element: 4, Frequency: 3 Element: 6, Frequency: 2 Element: 8, Frequency: 2 时间复杂度: 时间复杂度为 O(n * log(n)),这是对数组进行排序并为每个唯一元素执行二分查找的结果。 辅助空间: 辅助空间复杂度为 O(n),因为使用了与输入大小成比例的额外空间。 方法:排序和二分查找基于 排序 和 二分 查找的方法首先对数组进行排序,以便对重复元素进行分组,从而更容易识别它们。然后使用二分查找有效地查找每个组件的第一个和最后一个出现位置,从而能够快速计算频率。 算法步骤 1: 首先对输入数组进行排序,将重复的元素分组在一起。 步骤 2: 将索引 i 设置为 0,开始遍历排序后的数组。 步骤 3: 在遍历数组时,使用二分查找来查找每个元素的第一个和最后一个出现位置,并计算其频率。 步骤 4: 如果元素的频率大于 1,则打印该元素及其频率,并将索引 i 移动以跳过其所有出现。 步骤 5: 如果当前元素没有重复项,则将索引 i 加 1 以处理下一个唯一组件。 让我们在 Java 程序中实现上述步骤。 文件名:DuplicateFrequencyOptimized.java 输出 Duplicate elements and their frequencies: Element: 4, Frequency: 3 Element: 6, Frequency: 2 Element: 8, Frequency: 2 时间复杂度: 时间复杂度为 O(n * log2(n)),这是对数组进行排序并为每个唯一元素执行二分查找所致。 辅助空间复杂度: 辅助空间复杂度为 O(1),因为它除了输入数组之外,只使用了常量级别的额外空间。 下一个主题ArrayList 与 HashMap |
java.text 中的内置方法之一是 getMultiplier()。为了获取用于百分比、百分点等的许多格式的乘数,使用了 Java 类 DecimalFomrat。语法:public int getMultiplier() 参数:此方法不接受任何参数。返回值:可以使用的乘数值...
阅读 2 分钟
在 Java 中,日志记录是一项重要的功能,可帮助开发人员跟踪错误。Java 是一种带有日志记录方法的编程语言。它提供了 Java 1.4 版本中引入的日志记录 API。它提供了捕获日志的能力...
阅读 8 分钟
Java 是一种流行的编程语言,用于开发各种应用程序。学习 Java 的最佳方法之一是练习编写程序。在线和图书馆都有许多资源可帮助您查找 Java 练习程序。在练习时...
阅读 10 分钟
java.time.format.DecimalStyle 类包含 withZeroDigit() 方法。Java 中的 DecimalStyle 类用于配置用于表示该 DecimalStyle 的 Locale 的零字符。接收字符作为输入后,此函数将返回一个包含修改后的负值的 DecimalStyle 对象...
阅读 3 分钟
应用程序创建中最常用的技术是 Java。人们和企业喜欢它,因为它能将原始创意转化为有用的软件解决方案。Java 编程认证可以证明我们的专业知识,也可以帮助我们学习 Java 编程语言。Java...
阅读 6 分钟
在编程世界中,处理数字是一项基本任务。通常,我们需要为各种应用程序(如密码学、数据验证或数学运算)来操作数字中的各个数字。这个过程称为数字提取。在本节中,我们将探讨不同的...
阅读 3 分钟
在直接进入“阻塞队列”主题之前,让我们先简要了解一下队列。队列是对象的有序列表,其中插入发生在列表的尾部,删除发生在列表的前端。因此,它是...
14 分钟阅读
在 Java 中,默认参数是一项强大的功能,它允许开发人员为方法参数定义默认值。当一个方法有大量参数,但其中一些参数并非总是必需时,这将非常有用。默认参数已在 Java 8 中引入,并且……
阅读 4 分钟
Java 8 是 Java 平台的一次突破性发布,引入了大量新功能,其中 lambda 和 Stream API 最为突出。然而,一个经常被忽视的功能是 Compact Profiles,它提供了一种缩减 Java 运行时环境的方法...
阅读 3 分钟
Java 中的数据处理和格式化可以通过 SimpleDateFormat 和 Gregorian Calendar 等类来完成。日期和时间字段操作方法在 Gregorian Calendar 类中可用,该类是 Java.util 包的组成部分。但是,由于它需要生成日历实例和修改...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India