Java 如何使用for each循环查找数组中的重复元素
我正在尝试使用Java 如何使用for each循环查找数组中的重复元素,java,arrays,loops,Java,Arrays,Loops,我正在尝试使用为每个循环打印一个d数组中的重复元素。但我的结果出乎意料。有人能帮忙吗 package Login; public class DupsArray { static int[] a = {1,2,3,3}; public static void main(String[] args) { int length = a.length; for(int i=0;i<=length-1;i++) { for
为每个
循环打印一个d数组中的重复元素。但我的结果出乎意料。有人能帮忙吗
package Login;
public class DupsArray {
static int[] a = {1,2,3,3};
public static void main(String[] args) {
int length = a.length;
for(int i=0;i<=length-1;i++) {
for(int j : a) {
for(j=1;j<=length-1;j++) {
if(a[i]==(a[j]) ) {
System.out.println("Found duplicate");
} else {
System.out.println("No duplicates found");
}
}
}
}
}
包登录;
公共类DupsArray{
静态int[]a={1,2,3,3};
公共静态void main(字符串[]args){
int length=a.length;
对于(int i=0;i尝试使用下面的逻辑将数组中的每个元素与所有其他元素进行比较,如果发现任何重复项,它将停止执行以继续执行
for(int i = 0; i < a.length;i++) {
for (int j = i + 1 ; j < a.length; j++) {
if (a[i] == a[j]) {
System.out.println("Found duplicate");
return;
}
}
}
System.out.println("No duplicate Found");
for(int i=0;i
您可以这样使用:
Integer[] a = {1, 2, 3, 3, 5, 5, 7, 8, 7};
Set<Integer> duplicatesSet = new HashSet<>();
Set<Integer> helperSet = new HashSet<>();
for (Integer element : a) {
if (!helperSet.add(element)) { // NOTE*
System.out.println("Duplicate found : " + element);
duplicatesSet.add(element);
}
}
注意*
根据javadocs:
boolean add(E e);
如果指定的元素尚未存在,则将其添加到此集合
如果此集合尚未包含指定的元素,则返回true
这样我们可以知道元素是否已经在集合中,如果已经在集合中,我们可以将其添加到副本中。我们可以这样做
Integer[] arr = {1, 2, 3, 3, 5, 5, 7, 8, 7};
Set<Integer> set = new HashSet<Integer>();
for (Integer i : arr) {
if (set.add(i) == false)
{
System.out.println(i);
}
}
Integer[]arr={1,2,3,3,5,5,7,8,7};
Set=newhashset();
对于(整数i:arr){
if(set.add(i)=false)
{
系统输出打印LN(i);
}
}
尝试此功能并根据您的要求进行更新
public class Main{
public static void main(String[] args) {
int[] ar = new int[] {1, 1, 3, 3, 4, 5, 7, 8};
int size = ar.length;
int error = 0;
for(int i = 0; i < size; i++){
for(int j = i+1; j < size; j++){
if(ar[i] == ar[j]){
if(i != j){
error = error + 1;
System.out.println("dulicate element " + j);
}
}
}
}
System.out.println("total number of duplicate element " + error);
}
}
公共类主{
公共静态void main(字符串[]args){
int[]ar=新的int[]{1,1,3,3,4,5,7,8};
int size=ar.length;
整数误差=0;
对于(int i=0;i
这将只打印第一个重复项是的。但是如果我们需要查找所有重复项而不是返回,我们可以在那里执行我们想要的操作。如果我们需要在大数组中查找重复项,则遍历数组2次是不好的。对于较大的数组,这将花费大量时间来完成。是的,但我不明白为什么要使用2 dif不同的散列集。在第二个散列集中,我保留了副本供以后使用(如果需要)
public class Main{
public static void main(String[] args) {
int[] ar = new int[] {1, 1, 3, 3, 4, 5, 7, 8};
int size = ar.length;
int error = 0;
for(int i = 0; i < size; i++){
for(int j = i+1; j < size; j++){
if(ar[i] == ar[j]){
if(i != j){
error = error + 1;
System.out.println("dulicate element " + j);
}
}
}
}
System.out.println("total number of duplicate element " + error);
}
}