java中怎么样子找出数组中重复的数,并去除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么样子找出数组中重复的数,并去除相关的知识,希望对你有一定的参考价值。

 
 public static void main(String[] args)
 //可以换种思路,把数组放到set里面(set的值不会重复)就可以去重了
Integer[] arr = 85,4,2,6,11,4,5,8,9;
Set<Integer> set = new HashSet<Integer>();
 for(Integer i : arr)
 set.add(i);
 for(Object j: set.toArray())
 System.out.print(j + " ");
 

追问

可能我没有说清楚,就是这两个数组都是用来存储下标的,比如:index1[] = 0,3,2 , index2=0,1,2,3,4,5,我该怎么样去除数组index2[]和index1[]中重复的数!谢谢

追答

最终结果你是保留一个数组还是两个数组都要存在只是把index2里面的重复数去掉?

如果是只去掉index2里面的重复数字的话可以这么写:

public static void main(String[] args)
Integer[] index1 = 0,3,2;
Integer[] index2= 0,1,2,3,4,5;
List<Integer> list2 = new ArrayList<Integer>(Arrays.asList(index2));//把index2转换成list
for(Integer i : index1)
if(list2.contains(i))//如果list2中存在index1中的元素就去掉这个元素
list2.remove(i);

System.out.println(list2);

参考技术A

    使用Set集合处理即可,因为Set集合有特性,自动去除重复的元素;

    只要循环数组,添加到set中就可以实现了。

参考技术B 思想大概就是新建一个数组,然后把原数组的值放入新数组,检查有没有已存在的,放不进去的就是重复的,新数组就是你需要的 参考技术C 恩,把数组转换成set集合再转回去就行, 参考技术D 遍历数组,将值放入TreeSet集合,这个集合不允许重复,而且这个效率比较高

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

可以一次读入N个数据。可以考虑以回车结束读入的一组。
参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]=0,,Y[Max]=0,;

int main()

int i=0,j=0;
int a,b;
char c=0;

printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);

c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);

return 0;
参考技术A 给你思路,用循环逐个读取一个数组中的元素,在与另一个数组中的元素逐个比较追问

main()

int a[4],b[4];
int i,j;
for(i=0;i<4;i++)

printf("%d:",i);
scanf(" %d",&a[i]);

for(j=0;j<4;j++)

printf("%d:",j);
scanf(" %d",&b[j]);

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(a[i]==b[j]);


printf(" %d",b[i]);


getch();

追答

就是这样,不过建议你在输出后加空格这样每个元素就分开了printf("%d ",b[i])

追问

可是这个不对啊

追答

那个你把输出放错位置了#include
int main()

int a[4],b[4];
int i,j;
for(i=0;i<4;i++)

printf("%d:",i);
scanf(" %d",&a[i]);

for(j=0;j<4;j++)

printf("%d:",j);
scanf(" %d",&b[j]);

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(a[i]==b[j]);
printf(" %d",a[i]);//在这



getch();

参考技术B for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i]=b[j]) printf("%d\n",&a[i]); 这样行吗?追问

为什么是i<N呢

追答

#define N 10 /*也可以是其他数

#define M 10 /*也可以是其他数
int main ()

int a[N]; b[M];
.............

望采纳,谢谢

参考技术C 重复元素是两个数组内的还数组之间相同的元素?

以上是关于java中怎么样子找出数组中重复的数,并去除的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

js怎么去除数组中的重复的数据

关于如何去除数组中重复项

JS去除数组中重复的数字

js如何去除数组中重复项

怎样能用java decompiler快速找出想要的东西?