0
配列のintの個数を数えるプログラムを作成しようとしています。私がしようとしたのは、一意の整数をリストするメソッドを作成し、次にリスト項目を元の配列項目と比較する別の方法です。Listingを使用してintの配列を生成する
public List listUnique(int[] arr){
Arrays.sort(arr);
List <Integer> temp = new ArrayList<>();
int currentInt = 0;
for (int i = 0; i < arr.length; i++){
if(arr[i] != currentInt){
temp.add(arr[i]);
currentInt = arr[i];
}
}
return temp;
}
public int[] countDupli(List unique, int[] arr){
int [] ret = new int[unique.size()];
Iterator <Integer> iterator = unique.iterator();
for (int l = 0; l < unique.size(); l++){
ret[l] = iterator.next().intValue();
}
int[] dupli = new int[ret.length];
for (int j = 0; j < ret.length; j++){
dupli[j] = 0;
}
for (int k = 0; k < ret.length; k++){
for (int i = 0; i < arr.length; i++){
if (ret[k] == arr[i]){
dupli[k]+= 1;
}
}
k++;
}
return dupli;
}
これは何をするつもりではありません。たとえば、{1,2、...、1,2}の10項目の入力は正しい固有項目を出力しますが、1のカウントだけを出力しますが、2の出力は出力しません。dupli = [5,0]。どこでアルゴリズムがうまくいかなかったのですか?ありがとう
デバッグを試しましたか? – shmosel
まだ、申し訳ありませんが、私はJavaのかなりの初心者です。 –
は地図の仕事のように聞こえる – Andreas