📅  最后修改于: 2023-12-03 15:23:33.668000             🧑  作者: Mango
在 Java 中查找重复元素是一项常见任务。这在各种应用程序中都很常见,如社交媒体应用程序、音乐应用程序和收藏应用程序等。
以下是一些方法,可用于在 Java 数组中查找重复元素。
可以使用两个嵌套的 for 循环,在数组中遍历每个元素,并比较它们。如果发现重复元素,则将其添加到新的数组中。
int[] arr = {1, 2, 3, 4, 5, 1, 2};
int[] duplicates = new int[arr.length];
int index = 0;
for(int i = 0; i < arr.length; i++) {
for(int j = i + 1; j < arr.length; j++) {
if(arr[i] == arr[j]) {
duplicates[index] = arr[i];
index++;
break;
}
}
}
System.out.println("重复元素是: ");
for(int i = 0; i < index; i++) {
System.out.println(duplicates[i]);
}
该代码片段是一个基本的Java程序,使用两个嵌套的 for 循环来比较每个元素。
Java 中的 HashSet 是一种数据结构,可以用来查找重复元素。HashSet 不允许存储重复元素,因此,当我们将数组中的元素添加到 HashSet 中时,只有唯一的元素才会被添加。因此,通过比较数组长度和 HashSet 大小,我们可以找到重复元素。
int[] arr = {1, 2, 3, 4, 5, 1, 2};
Set<Integer> set = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();
for(int i = 0; i < arr.length; i++) {
if(set.contains(arr[i])) {
duplicates.add(arr[i]);
} else {
set.add(arr[i]);
}
}
System.out.println("重复元素是: ");
for(Integer i : duplicates) {
System.out.println(i);
}
该方法的主要优点是它可以处理大量数据。
Java 中的 HashMap 是一种数据结构,可以用来存储键值对。我们可以使用 HashMap 来存储数组中的元素和其出现次数,然后遍历这个 HashMap,查找重复元素。
int[] arr = {1, 2, 3, 4, 5, 1, 2};
HashMap<Integer, Integer> map = new 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);
}
}
System.out.println("重复元素是: ");
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
if(entry.getValue() > 1) {
System.out.println(entry.getKey());
}
}
这个方法的优点是它可以处理大量数据,并且存储元素出现的次数非常简单。然而,它也是最慢的方法,需要使用额外的内存存储元素和其出现次数。
以上是使用 Java 在数组中查找重复元素的三种方法。每种方法都有其优点和缺点,您应该根据实际应用和数据大小选择最适合您的方法。