2017-01-19 9 views
-1

私は最近Javaとプログラムでプログラミングを学び始めました。別個の配列要素を印刷しようとしています int arr [] = {2,5、 4,9,3,2,5,9,4}次に、数字を1回だけ得ることができる、つまり期待値2 5 4 9 3 以下はこれを行うためのコードですが、間違った/ P マイO/P:2 5 4 9.誰もがあなたが開始している場合、私は間違ってint配列内の重複する要素を削除するプログラム

package prac; 

    public class RemoveDup { 

     public static void main(String[] args) { 

    int[] a={2,5,4,9,3,2,5,9,4}; 
    int n=a.length; 
    for(int i=0;i<=n;i++){ 
     //System.out.print("In i"+i); 
     for(int j=i+1;j<n;j++){ 
      //System.out.println("In j"+j); 
      if(a[i]==a[j]){ 
       System.out.println(a[i]); 
      } 
     } 

    } 
     } 

    } 
+1

、それを見つけるのは非常に簡単だった既存の答えはいくつかを持っている30以上の潜在的なあなたは – luk2302

+0

を達成しようとしているものの反対を行いますあなたの答え。 – GhostCat

+0

ArrayIndexOOBエラーが発生しないことに驚いています。 –

答えて

1

再発明し、ホイールをやっていることは良いアイデアではなく、最も最適なものであるものを私に指摘することができます言語を学ぶ。もちろん、いくつかのデバッグステートメントを追加して、比較しているものなどを確認したり、IDE(Netbeans/Eclipse)を使ってコードをステップ実行して、何が起きているかを確認することができます。

私の提案:Setを使用し、すべての要素をセットに挿入し、同じ値を2回挿入すると重複がないようにします。例えば

:あなたのコードが重複を持っているすべてのそれらの要素を出力します

int[] a={2,5,4,9,3,2,5,9,4}; 
    int n=a.length; 
    HashSet<Integer> myVals = new HashSet<Integer>(); 
    for(int val : a){ 
     myVals.add(val); 
    } 
    for(int val : myVals){ 
     System.out.println(val); 
    } 
関連する問題