私は、整数の配列を受け取り、その配列の一意の値の数を返すメソッドを作成しようとしています。たとえば、配列{5、6、5、7、5、7}の場合、3つの重複(5,5,7)があるため、このメソッドは3を返します。私は間違ってどこに行ったのかわからない、変数list
を作成しようとしたのでnumUnique(list)
と呼んだときに私の答えが得られるが、それはうまくいかないようだ。助言がありますか?ユーザーが入力した配列のユニークな値の数を調べる
コード:
import java.util.Scanner;
public class Unique_Values {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] list = new int[n];
System.out.printf("%d%n ", list);
}
public static int numUnique(int[] list) {
if (list.length == 0) {
return 0;
} else {
int count = 1;
for (int i = 1; i < list.length; i++) {
if (list[i] != list[i - 1]) {
count++;
}
}
return count;
}
}
}
」 "明確な問題の説明ではありません。あなたの入力は何ですか?どのようなアウトプットを期待しましたか? – shmosel
あなたのメソッドは隣接する重複をチェックするだけです。 – shmosel
内部ループが必要です。数字の直前の要素をチェックしているだけです。たとえば、 '4545'では' 5'から '4'に' 5'を '5'ではなく' 4'と比較しています。配列内の各数値を他のすべての数値と比較する必要があります。あなたは内部のループを使ってこれを行うことができます... – brso05