Java如何找出数组中重复的数字

要找出Java数组中的重复数字,可能有以下几种方法:

方法一:暴力方法

这个方法虽然简单易懂,但其时间复杂度也比较高,不过对于小型数组来说还是可以接受的。

简单来说就是遍历整个数组,对于每一个数字,都依次遍历后面的数字,如果发现该数字已经出现过,那么就把它输出出来即可。

这个方法的Java代码示例如下:

public void findDuplicate(int[] arr) {
  for (int i = 0; i < arr.length - 1; i++) {
    for (int j = i + 1; j < arr.length; j++) {
      if (arr[i] == arr[j]) {
        System.out.println("重复数字为:" + arr[i]);
      }
    }
  }
}

方法二:使用HashMap

这个方法的思路是利用一个HashMap来存储数组中出现过的数字及其出现的次数,然后再遍历HashMap,输出其中出现次数大于1的数字即可。

这个方法的Java代码示例如下:

public void findDuplicate(int[] arr) {
  Map<Integer, Integer> map = new HashMap<>();

  // 把数组中的数字及其出现的次数放到HashMap中
  for (int i = 0; i < arr.length; i++) {
    if (map.containsKey(arr[i])) {
      map.put(arr[i], map.get(arr[i]) + 1);
    } else {
      map.put(arr[i], 1);
    }
  }

  // 遍历HashMap,输出出现次数大于1的数字
  for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
    if (entry.getValue() > 1) {
      System.out.println("重复数字为:" + entry.getKey());
    }
  }
}

示例:

假设有数组arr = {1, 2, 3, 4, 5, 2, 3, 8, 9, 9},我们可以使用以上两种方法找出其中的重复数字。我们可以调用findDuplicate()方法和传入arr参数,即可找出其中的重复数字为2和3。

另外,在实际项目中,我们更推荐使用HashMap的方法,因为其时间复杂度较低,而且可以方便的统计次数并输出出现次数大于1的数字。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何找出数组中重复的数字 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 强烈推荐-ajax开发者必看的文章第3/3页

    让我为您详细讲解一下“强烈推荐-ajax开发者必看的文章第3/3页”的完整攻略。 强烈推荐-ajax开发者必看的文章第3/3页 1. Ajax简介 Ajax是一种基于现有标准的web开发技术,主要运用JavaScript、XML、CSS、DOM等技术实现异步加载数据和局部刷新的效果。它的优点是可以提高web应用的交互效率,减轻服务器压力,提升用户体验。 2.…

    Java 2023年6月15日
    00
  • Java程序流程控制:判断结构、选择结构、循环结构原理与用法实例分析

    Java程序流程控制是Java编程语言中非常重要的一部分,它可以帮助我们控制程序的执行顺序和流程。程序流程控制主要包括判断结构、选择结构和循环结构。下面我们将详细讲解这三种结构的原理和用法,并且通过实例进行演示。 判断结构 在 Java 中,判断结构主要是通过 if 语句来实现的。if 语句的原理很简单,就是根据条件表达式的结果来决定是否执行特定的代码块。 …

    Java 2023年5月30日
    00
  • Java二叉树的四种遍历方式详解

    Java二叉树的四种遍历方式详解 二叉树是一种常见的数据结构,在Java中也有很多实现方式。对二叉树进行遍历是必不可少的操作,Java提供了四种不同的遍历方式,这篇文章会详细讲解这四种方法,以及对应的代码实现和示例说明。 什么是二叉树 二叉树是一种树结构,其每个结点最多只有两个子节点。其中一个为左子节点,一个为右子节点。 每个结点都由三部分组成:一个数据域、…

    Java 2023年5月19日
    00
  • 详解重试框架Spring retry实践

    详解重试框架Spring Retry实践 Spring Retry是一个用于在Spring应用程序中执行重试逻辑的框架。它提供了很多有用的功能,例如定时重试、重试策略的配置、异常处理等。在这篇文章中,我们将为您介绍Spring Retry的基本概念和使用方法,并提供一些示例来帮助您更好地了解Spring Retry的使用。 引入Spring Retry 在使…

    Java 2023年5月19日
    00
  • 通过反射实现Java下的委托机制代码详解

    先来了解一下反射和委托机制。 反射是Java语言的一种特性,它可以让我们在程序运行时动态地获取和操作类的信息。而委托机制则是一种实现面向对象编程的方法,它将任务的具体实现委托给其他对象来完成。在实际场景中,我们常常通过反射来动态地绑定委托关系,实现更加灵活和智能的程序设计。 下面就来详细讲解如何通过反射实现Java下的委托机制。 步骤一:定义一个接口 首先,…

    Java 2023年5月23日
    00
  • js中几种去掉字串左右空格的方法

    当我们操作字符串时,常常需要将字符串的左右两端空格去掉。在 JavaScript 中,去掉字符串左右空格的方法有多种。下面是几种去掉字符串左右空格的方法的详细攻略: 使用trim()方法 使用 trim() 方法,可以去掉字符串两端的空格,同时该方法还可以去掉字符串两端的所有空白字符(包括空格、制表符、换行符等)。 let str = ‘ hello wor…

    Java 2023年6月15日
    00
  • 如何在SpringBoot+Freemarker中获取项目根目录

    在Spring Boot应用程序中,我们经常需要获取项目根目录的路径。在使用Freemarker模板引擎时,我们可以使用Freemarker的内置变量来获取项目根目录的路径。本文将详细介绍如何在Spring Boot+Freemarker中获取项目根目录的完整攻略,并提供两个示例说明。 1. 获取项目根目录的路径 在Spring Boot应用程序中,我们可以…

    Java 2023年5月18日
    00
  • 从Java的jar文件中读取数据的方法

    从Java的jar文件中读取数据有多种方法,这里提供两个示例: 1. 使用Java自带的类库 Java中有自带的读取jar包中文件的方法,可以使用java.util.jar.JarFile类,在该类中提供了多个方法可以读取jar文件中的内容,例如下面的示例代码: import java.io.IOException; import java.io.Input…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部