java中怎么样子找出数组中重复的数,并去除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么样子找出数组中重复的数,并去除相关的知识,希望对你有一定的参考价值。
其实只要遍历数组,然后放进set集合内即可实现。比如:
//set集合可以自动去重
Integer[] a = 1, 2, 2 , 19, 19, 8, 9;
Set<Integer> set = new HashSet<Integer>();
for(Integer i : a)
set.add(i);
for(Object s: set.toArray())
System.out.print(s+ " ");
参考技术A int[] arr = new int[]1,2,3,4,5,1,3,5;
Set<Integer> set = new HashSet<Integer>();
for(int i = 0 ; i < arr.length; i ++)
for( int j = 0 ; j < arr.length ;j ++)
if(i != j && arr[i] == arr[j])
set.add(arr[i]);
System.out.println("重复的数字:"+set.toString());
Set<Integer> set2 = new HashSet<Integer>();
for(int i = 0 ; i < arr.length; i ++)
if(!set.contains(arr[i]))
set2.add(arr[i]);
System.out.println("删除重复数字后:"+set2); 参考技术B 将数组中的值放在一个Set集合中,再将Set集合转为数组
在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();
为什么是i<N呢
追答#define N 10 /*也可以是其他数
#define M 10 /*也可以是其他数
int main ()
int a[N]; b[M];
.............
望采纳,谢谢
以上是关于java中怎么样子找出数组中重复的数,并去除的主要内容,如果未能解决你的问题,请参考以下文章