Java 查找在包含1到100个数字的向量中重复的数字

Java 查找在包含1到100个数字的向量中重复的数字,java,Java,我试图找到在Java中包含从1到100的数字的向量中重复的数字。如果多个数字重复,请按升序显示。如果没有重复数字,则显示0 输入:一个大于0的整数,一个数组inputVector[n]。 输出:带数字的数组 代码: /* 对于N=12和A={9,31,38,5,62,44,38,17,19,38,50,74},结果是38。 对于N=12和A={9,31,38,5,62,44,38,17,19,38,50,31},结果是31,38。 对于N=12和A={4,3,14,15,18,39,56,891

我试图找到在Java中包含从1到100的数字的向量中重复的数字。如果多个数字重复,请按升序显示。如果没有重复数字,则显示0

输入:一个大于0的整数,一个数组inputVector[n]。
输出:带数字的数组

代码:

/*
对于N=12和A={9,31,38,5,62,44,38,17,19,38,50,74},结果是38。
对于N=12和A={9,31,38,5,62,44,38,17,19,38,50,31},结果是31,38。
对于N=12和A={4,3,14,15,18,39,56,89101150165187},结果为0。
这是我的工作。
*/
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
int[]inputVector=null;
int result=Integer.MAX_值;
int n;
try(Scanner=newscanner(新文件(args[0])){
n=Integer.parseInt(scanner.nextLine());
字符串[]numberTokens=scanner.nextLine().split(“”);
inputVector=new int[numberTokens.length];
for(int i=0;i
您可以简单地使用
哈希集和
流来查找数组中的重复项:

int[] inputVector = new int[]{6, 2, 4, 9, 1, 3};
Set<Integer> uniqueVector = new HashSet<>();
int[] duplicates = Arrays.stream(inputVector)
        .filter(i -> !uniqueVector.add(i))
        .sorted().toArray();

if (duplicates.length > 0) {
    System.out.println(Arrays.toString(duplicates));
} else {
    System.out.println(0);
}
int[]inputVector=newint[]{6,2,4,9,1,3};
Set uniqueVector=new HashSet();
int[]duplicates=Arrays.stream(inputVector)
.filter(i->!uniqueVector.add(i))
.sorted().toArray();
如果(重复。长度>0){
System.out.println(Arrays.toString(副本));
}否则{
系统输出打印项次(0);
}
这种情况下的结果将是
0


对于输入数组
{6,2,4,9,1,3,6,3,9}
,结果将是
[3,6,9]

,您只需使用
哈希集
即可在数组中查找重复项:

int[] inputVector = new int[]{6, 2, 4, 9, 1, 3};
Set<Integer> uniqueVector = new HashSet<>();
int[] duplicates = Arrays.stream(inputVector)
        .filter(i -> !uniqueVector.add(i))
        .sorted().toArray();

if (duplicates.length > 0) {
    System.out.println(Arrays.toString(duplicates));
} else {
    System.out.println(0);
}
int[]inputVector=newint[]{6,2,4,9,1,3};
Set uniqueVector=new HashSet();
int[]duplicates=Arrays.stream(inputVector)
.filter(i->!uniqueVector.add(i))
.sorted().toArray();
如果(重复。长度>0){
System.out.println(Arrays.toString(副本));
}否则{
系统输出打印项次(0);
}
这种情况下的结果将是
0


对于输入数组
{6,2,4,9,1,3,6,3,9}
结果将是
[3,6,9]

,您的问题是?这段代码不会编译,至少因为
if(numberTokens[i]=numberTokens[j])
。你大概打算
==
而不是
=
@Gatusko如何解决这个问题!您应该将结果存储在字符串中。@AndyTurner我已经解决了这个问题,但这不是问题所在,您的问题是?这段代码不会编译,至少因为
if(numberTokens[i]=numberTokens[j])
。你大概打算
==
而不是
=
@Gatusko如何解决这个问题!您应该将结果存储在一个字符串中。@AndyTurner我修复了这个问题,但这不是问题所在problem@samuel_Philiip谢谢:)你能把你的邮件给我吗you@samuel_Philiip谢谢:)你能给我你的邮件和你联系吗