Java 在整数数组中搜索重复的数字
我想在数组中找到重复的数字。 对于这一点,我用下面的方法进行比较,但我无法得到所需的输出 新数组应包含无重复性的数字 我试过以下方法Java 在整数数组中搜索重复的数字,java,Java,我想在数组中找到重复的数字。 对于这一点,我用下面的方法进行比较,但我无法得到所需的输出 新数组应包含无重复性的数字 我试过以下方法 public static void main(String[] args) { int[] a={1,2,3,6,3,5,7,3,9,7}; int[] k=new int[a.length]; for(int i=0;i<a.length;i++){
public static void main(String[] args) {
int[] a={1,2,3,6,3,5,7,3,9,7};
int[] k=new int[a.length];
for(int i=0;i<a.length;i++){
for(int j=1;j<a.length;j++){
if(a[i]==a[j]){
k[i]=a[j];
}
}
}
for(int n=0;n<k.length;n++){
System.out.print(k[n]);
}
}
publicstaticvoidmain(字符串[]args){
int[]a={1,2,3,6,3,5,7,3,9,7};
int[]k=新的int[a.长度];
对于(inti=0;i您应该将内部循环从i+1
迭代到length,将其更改为following
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]==a[j]){
k[i]=a[j];
}
}
}
for(inti=0;iNice一个
public static void main(String[] args) {
int[] a={1,2,3,6,3,5,7,3,9,7};
int[] k=new int[a.length];
Set<Integer> dups = new HashSet<Integer>();
int index = 0;
for(int i=0;i<a.length;i++){
boolean found = false;
for(int j=1;j<index && !found;j++){
if(a[i]==k[j]){
// found duplicate.
found = true;
dups.add(a[i]);
}
}
if (!found)
{
k[index++]=a[i];
}
}
System.out.print("Unique entries: ");
for(int n=0;n<index;n++){
System.out.print(k[n]+" ");
}
System.out.println("\nDups:" + dups);
publicstaticvoidmain(字符串[]args){
int[]a={1,2,3,6,3,5,7,3,9,7};
int[]k=新的int[a.长度];
Set dups=new HashSet();
int指数=0;
对于(inti=0;i,如果您对查找重复项不感兴趣,而只对删除重复项感兴趣。以下方法将起作用
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Test
{
public static void main(String args[])
{
Integer[] a = new Integer[] {1,2,3,6,3,5,7,3,9,7};
Set<Integer> numberset = new HashSet<Integer>(Arrays.asList(a));
Integer[] output = numberset.toArray(new Integer[0]);
for (Integer i : output)
{
System.out.println(i);
}
}
}
导入java.util.array;
导入java.util.HashSet;
导入java.util.Set;
公开课考试
{
公共静态void main(字符串参数[])
{
整数[]a=新整数[]{1,2,3,6,3,5,7,3,9,7};
Set numberset=newhashset(Arrays.asList(a));
整数[]输出=numberset.toArray(新整数[0]);
for(整数i:输出)
{
系统输出打印LN(i);
}
}
}
您不应该将数字与列表中的下一个数字进行比较,您应该对每个数字在新数组中进行迭代。如果数字已经存在,请不要添加它,否则,请添加它。调试代码,您就会看到问题。强烈建议您这样做,因为您可以更好地了解代码流。调试器将改变您的生活…但是为什么..我从我的一位同行那里得到了这个建议..但我无法理解..我应该使用j=i+1?@user3499450,因为你在上一次迭代中也覆盖了i.OP想要打印副本。这是打印unique。