使用由用户输入的阵列打印数字忽略重复的数字

时间:2015-07-29 15:45:38

标签: java arrays

示例 - 输入(10,20,30,10,50)输出(10,20,30,50)

import static java.lang.System.*;
import java.util.*;
public class Uni
{
    public static void main(String[]args)
    {
        Scanner sc=new Scanner(in);
        int[]a=new int[5];       
        for(int i=0;i<a.length;i++)
        {
            out.println("Please type a number");
            a[i]=sc.nextInt();
        }      
        int temp;
        boolean flag = true;  
        while ( flag )
        {
            flag= false;
            for(int j=0;j<a.length-1;j++)
            {
                if ( a[ j ] > a[j+1] )
                {
                    temp = a[ j ];    
                    a[ j ] = a[ j+1 ];
                    a[ j+1 ] = temp;
                    flag = true;  
                }
            }
        }
        for(int i=0;i<a.length;i++)
        {
            if(i==0){
            out.print(a[i]+" ");
            }else{
                if(a[i]!=a[i-1]){
                    out.print(a[i]+" ");
                }
            }       
        }
    }   
}

这是我的代码..但我想在不进行排序的情况下这样做?强烈建议不要使用默认方法!

2 个答案:

答案 0 :(得分:0)

如果您想使用Set ...

Set<Integer> mySetNoDuplicates = new HashSet<Integer>(Arrays.asList(a));
for(Integer currentInt : mySetNoDuplicates){
    System.out.println(currentInt);
}

答案 1 :(得分:0)

写一个函数来检查我们是否要打印这个数字怎么样?这样您就不需要对输入的数组进行排序。此外,没有使用内置方法。

import static java.lang.System.*;
import java.util.*;

public class Uni {
    public static boolean isContain(int[] src, int end, int value) {
        int start;
        for (start = 0; start < end; start++) {
            if (src[start] == value) {
                return true;
            }
        }
        return false;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(in);
        int[] a = new int[5];
        for (int i = 0; i < a.length; i++) {
            out.println("Please type a number");
            a[i] = sc.nextInt();
        }

        for (int i = 0; i < a.length; i++) {
            if (i == 0) {
                out.print(a[i] + " ");
            } else {
                if (!isContain(a, i, a[i])) {
                    out.print(a[i] + " ");
                }
            }
        }
    }
}

输入:

  

10,20,30,10,50

输出:

  

10,20,30,50