我需要为某人写一个程序,输入10到100之间的5个数字,但我不知道如何消除重复数据?我有什么明智的想法可以做到吗?
答案 0 :(得分:2)
将它们添加到hashset
,并检查您在集合中有多少元素。
例如:
Scanner sc = new Scanner(System.in);
HashSet<Integer> nrs = new HashSet<Integer>();
int n;
System.out.println("Enter 5 numbers from 10 to 100");
do {
if (sc.hasNextInt())
if ((n = sc.nextInt()) > 9 && n < 101)
nrs.add(new Integer(n));
System.out.println("We have numbers: " + nrs);
} while (nrs.size() < 5);
System.out.println("Superb. You entered numbers: " +nrs);
答案 1 :(得分:1)
使用Set实现,根据定义,它不包含重复...
TreeSet<Integer> ints = new TreeSet<Integer>();
int[] int_array = { 1, 2, 3, 4, 3, 5, 4, 2, 3, 4, 3 4, 2, 1 };
for (int n : int_arr)
ints.add(n);
for (int n : ints)
System.out.preintln(n);
输出: 1 2 3 4 5
答案 2 :(得分:0)
跟踪到目前为止输入的数字。如果已输入用户输入,则要求用户重新输入另一个号码。
答案 3 :(得分:0)
这并不像看起来那么微不足道。
但过了一会儿我就来了:
class ClearDup {
public static void main( String ... args ) {
int [] o = {1,2,1,3,1,2,4};
int [] f = new int[o.length];
int filterIndex = 0;
original: for( int i : o ) {
for( int j : f ) {
if( i == j ) {
continue original;
}
}
f[filterIndex++] = i;
}
int [] result = java.util.Arrays.copyOf(f, filterIndex );
System.out.println( java.util.Arrays.toString( result ) );
}
}
答案 4 :(得分:0)
class Aaaray{
static int arr[]={1,2,3,4,2,3,4,3,5,6,4,4,1,6,7,3,8,7,9,10,3,10,11,11,12,1,2,5,13,14,12,14};
static int brr[]= new int[8];
public static void main(String[]args){
for(int j=0;j<arr.length;j++){
for(int i=j+1;i<arr.length;i++){
if(arr[j] == arr[i]){
arr[i]=0;
}
}
}
for(int m=0;m<arr.length;m++){
if(arr[m]!=0){
int t =arr[m];
System.out.println(t);
}
}
}
}