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日

相关文章

  • Android开发之WebView组件的使用解析

    Android开发之WebView组件的使用解析 在Android开发中,WebView组件是一个非常重要的组件。它在应用程序中可以嵌入网页,并显示网页内容。本文将围绕WebView组件的基础使用和高级使用方法进行详细解析。 WebView的基础使用 1. 在布局文件中添加WebView 在xml布局文件中添加<WebView/>。 <We…

    Java 2023年5月30日
    00
  • springboot+thymeleaf打包成jar后找不到静态资源的坑及解决

    在使用Spring Boot和Thymeleaf开发Web应用程序时,我们可能会遇到打包成jar后找不到静态资源的问题。本文将详细介绍这个问题的原因和解决方法,并提供两个示例说明。 1. 问题原因 在Spring Boot应用程序中,静态资源通常存放在src/main/resources/static目录下。当我们使用Maven或Gradle将应用程序打包成…

    Java 2023年5月18日
    00
  • Java for循环详解

    Java for循环详解 在Java中,for循环是一种常用的迭代结构。它提供了一种在满足特定条件的情况下,重复执行某段代码的方法。下面我们来详细讲解Java for循环的语法和用法。 语法 Java for循环的语法如下: for (initialExpression; testExpression; updateExpression) { // 要执行的…

    Java 2023年5月26日
    00
  • SpringBoot注册Servlet的三种方法详解

    Spring Boot注册Servlet的三种方法详解 在Spring Boot应用程序中,注册Servlet是一个非常常见的需求。本文将详细介绍Spring Boot注册Servlet的三种方法,包括使用注解、使用ServletRegistrationBean和使用WebServerFactoryCustomizer。 使用注解 使用注解是一种常见的Spr…

    Java 2023年5月15日
    00
  • 一文秒懂通过JavaCSV类库读写CSV文件的技巧

    一文秒懂通过JavaCSV类库读写CSV文件的技巧 什么是CSV文件 CSV文件(Comma-Separated Values,逗号分隔值)是一种常见的文本格式,用来存储结构化数据,其每行都表示一条记录,每个记录使用逗号或其他分隔符分割字段,每个字段的值可以用引号括起来。 例如,以下CSV文件表示了三个人的基本信息: Name,Age,Gender &quo…

    Java 2023年5月19日
    00
  • Java陷阱之assert关键字详解

    Java陷阱之assert关键字详解 引言 在Java程序开发中,assert关键字是一种非常有用的调试和测试工具。它能够帮助我们在程序运行时检查程序中的假设与约束是否被满足,从而及时发现程序中的bug。但是,assert关键字也存在着一些陷阱和误区,如果使用不当,就可能会导致程序出现各种意想不到的问题。本文将详细讲解Java中assert关键字的使用方法、…

    Java 2023年5月27日
    00
  • Spring Boot启动过程完全解析(二)

    SpringBoot启动过程完全解析(二) 在上一篇文章中,我们介绍了Spring Boot的启动过程。本文将继续深入探讨Spring Boot的启动过程,并提供两个示例来演示如何使用Spring Boot。 1. Spring Boot的启动过程 Spring Boot的启动过程可以分为以下几个步骤: 加载Spring Boot的配置文件 创建Spring…

    Java 2023年5月14日
    00
  • JSP经典学习笔记(包含各种入门常用语法)

    JSP经典学习笔记攻略 JSP即Java Server Pages,是一种基于 Java 技术的Web应用程序开发技术。它允许开发者在网页中嵌入 Java 代码片段,实现与动态数据交互的功能。本篇攻略将包括以下几个部分: JSP基础语法 JSP内置对象 JSP标准标签库 两条示例说明 JSP基础语法 JSP文件结构 在JSP文件中,可以使用HTML标记和Ja…

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