2016-11-11 7 views
-5

私は初めのJavaコースです。 Scanner入力を使用して長さ10の配列を作成しました。今、私は配列の要素のいずれかが複数回出現するかどうかを調べるプログラムを書く必要があります。ガイダンスを大いに感謝します!Java:配列に等しい要素が2つあるかどうかを調べるにはどうすればよいですか?

+0

一般的な検索アルゴリズムを使用します。 – Munib

+0

ようこそstackoverflowへ。何を試したのか、何処にいるのか教えてください。この質問は非常に一般的ですが、正しいグーグルリングはあなたにすべての答えを与えてくれるはずです –

+1

参照:http://stackoverflow.com/questions/3951547/java-array-finding-duplicates – Tim

答えて

0

あなたはそれを行う必要があります。この

for(int i=0;i<array.length;i++) 
    { 

    for(int j=i+1;j<array.length;j++) 
     { 
      if(array[i].equals(array[j])) 
       { 
        System.out.println("Duplicate found"); 
       } 

     } 
    } 
+0

は、配列がプリミティブ型の場合は動作しません。プリミティブには等価がないためです。 –

+0

それは文字列比較のために、文字列の比較がプリミティブ型の比較よりも難しく見えるかもしれないので、配列が非プリミティブ型の場合は –

1

次のコードのように、ネストされたループを使用することができます。

import java.io.IOException; 
import java.util.*; 

public class test { 
    public static void main(String [] args) throws IOException { 

     Scanner scanner = new Scanner(System.in); 

     int[] nums = new int[10]; 

     for (int i=0;i<10;i++) { 
      nums[i] = scanner.nextInt(); 
     } 

     System.out.println(findDuplicate(nums) ? "Duplicate found" : "No Duplicates"); 

    } 

    public static boolean findDuplicate(int[] nums) { 
     for (int i=0; i < 10; i++) { 
      for (int j=0; j<10; j++) { 
       if (i!=j && nums[i] == nums[j]) { 
        return true; 
       } 
      } 
     } 
     return false; 
    } 
} 
+0

は機能しません。==の代わりにequalsを使用する必要があります。 –

関連する問題