如何在 java 中检查或检测数组中的重复元素-ag捕鱼王app官网

如何在 java 中检查或检测数组中的重复元素

作者:迹忆客 最近更新:2023/05/09 浏览次数:

检测 java 数组中的重复元素是我喜欢的另一个编程面试问题。 可能有很多方法可以检查数组是否包含重复元素,有时我们会通过在 java 面试中提出这个问题来发现检查重复项的独特方法。 这个问题的美妙之处在于它有无数的后续问题,所以如果受访者通过了这个问题,你可以问他关于时间复杂度和空间的问题,或者改进他的算法以使其更快。你甚至可以要求找到 array 中的那些重复元素,甚至可以从 array 中的一个重复元素变成许多重复元素。 正如我所说,这样可以真正测试 java 程序员的编程技能。


检查数组中是否有重复元素 java

在本 java 教程中,我们将看到几种在 java 中查找数组是否包含重复项的方法。 我们将使用不允许重复的 java 集合类 set 的唯一属性来检查 java 数组中的重复元素。 这里有五种方法可以检查数组是否有重复项:

1. 暴力破解算法

蛮力方法将 array 的每个元素与所有其他元素进行比较,如果发现重复则返回 true。 尽管这不是一个有效的选择,但它是第一个想到的选择。

2. 使用集合数据结构

检查 java 数组是否包含重复项的另一种快速方法是将该数组转换为 set。 由于 set 不允许重复,如果 array 包含重复项,则相应 set 的大小将小于原始 array,否则 array 和 set 的大小将相同。

3.在java中使用 hashset

在 java 数组中检测重复的另一种方法是将数组的每个元素添加到 hashset 中,这是一个 set 实现。 由于如果 set 已经包含要添加的元素,则 set 的 add(object obj) 方法返回 false,因此可用于查明数组是否包含 java 中的重复元素。

此外,基本数据结构的基础知识也非常重要。

在下一节中,我们将在 java 中完成对 array 的所有三种重复检测方式的代码示例。 请记住,此讨论只是确认一个数组是否包含重复项,它并没有从数组中找出实际的重复元素,尽管您可以轻松地扩展示例 java 程序以根据您的要求完成该任务。

这也是流行的编程面试问题之一,在几个面试中被问到。


java中检查数组重复项的代码示例

这是上述所有方法的完整代码示例,用于检查数组是否包含重复项。

import java.util.arrays;
import java.util.hashset;
import java.util.list;
import java.util.set;
public class checkduplicatesinjavaarray {
    public static void main(string args[]) {
        string[] withduplicates = new string[]{"one", "two", "three", "one"};
        string[] withoutduplicates = new string[]{"one", "two", "three"};
        system.out.println("checking array with duplicate using brute force: "   bruteforce(withduplicates));
        system.out.println("checking array without any duplicate using brute force: "   bruteforce(withoutduplicates));
        system.out.println("checking array with duplicate using set and list: "   checkduplicateusingset(withduplicates));
        system.out.println("checking array without any duplicate using set and list: "   checkduplicateusingset(withoutduplicates));
        system.out.println("checking array with duplicate using set and list: "   checkduplicateusingadd(withduplicates));
        system.out.println("checking array without any duplicate using set and list: "   checkduplicateusingadd(withoutduplicates));
    }
    /*
     * 在 java 中检查数组是否包含重复项的蛮力方法
     * 将每个元素与数组复杂度的所有其他元素进行比较,
     * 在生产中不建议按 o(n^2) 的顺序进行
     */
    public static boolean bruteforce(string[] input) {
        for (int i = 0; i < input.length; i  ) {
            for (int j = 0; j < input.length; j  ) {
                if (input[i].equals(input[j]) && i != j) {
                    return true;
                }
            }
        }
        return false;
    }
    /*
     * 通过比较 list 和 set 的大小来检测数组中的重复项,因为 set 不包含重复项,对于包含重复项的数组,大小必须更小
     */
    public static boolean checkduplicateusingset(string[] input) {
        list inputlist = arrays.aslist(input);
        set inputset = new hashset(inputlist);
        if (inputset.size() < inputlist.size()) {
            return true;
        }
        return false;
    }
    /*
     * 由于 set 不允许重复 add() 返回 false
     * 如果我们尝试将重复项添加到 set 并且此属性可用于检查数组是否包含 java 中的重复项
     */
    public static boolean checkduplicateusingadd(string[] input) {
        set tempset = new hashset();
        for (string str : input) {
            if (!tempset.add(str)) {
                return true;
            }
        }
        return false;
    }
}

上述代码输出结果如下

java 检查或检测数组中的重复元素

这就是关于如何在 java 中检查数组是否包含重复项的全部内容。 大家会看到我们在两个示例中使用了 java collection api,也可以有其他纯编程ag捕鱼王app官网的解决方案。 在真正的面试中,你可能会被要求在不使用 java api 的情况下检测重复项。 如果遇到其他不使用 java api 检查数组中重复项的好方法,请告诉我们。

上一篇:

下一篇:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:java

本篇文章主要介绍如何在 java 中制造程序延迟。本教程介绍了如何在 java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 java 中把 hashmap 转换为 json 对象

发布时间:2023/12/17 浏览次数:187 分类:java

它描述了允许我们将哈希图转换为简单的 json 对象的方法。本文介绍了在 java 中把 hashmap 转换为 json 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 json 对象的详细例子。

如何在 java 中按值排序 map

发布时间:2023/12/17 浏览次数:171 分类:java

本文介绍了如何在 java 中按值对 map 进行排序。本教程介绍了如何在 java 中按值对 map 进行排序,并列出了一些示例代码来理解它。

如何在 java 中打印 hashmap

发布时间:2023/12/17 浏览次数:192 分类:java

本帖介绍了如何在 java 中打印 hashmap。本教程介绍了如何在 java 中打印 hashmap 元素,还列举了一些示例代码来理解这个主题。

在 java 中更新 hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:java

本文介绍了如何在 java 中更新 hashmap 中的一个值。本文介绍了如何在 java 中使用 hashmap 类中包含的两个方法-put() 和 replace() 更新 hashmap 中的值。

java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:java

本文介绍了 java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 java 中 map 和 hashmap 之间的主要区别。在 java 中,map 是用于以键值对存储数据的接口,

在 java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:java

这篇文章向你展示了如何在 java 中获取用户主目录。本教程介绍了如何在 java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:java

这篇文章教你如何知道 java 中大小和长度之间的区别。本教程介绍了 java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:java

了解有关 java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图