重複がある場所のインデックスを格納する一時配列を作成してリストから重複を削除しようとしています。次に、インデックスを最初の一時配列に格納したインデックスと比較しながら、元の配列を別の一時配列にコピーします。 。
public void removeDuplicates()
{
double tempa [] = new double [items.length];
int counter = 0;
for ( int i = 0; i< numItems ; i++)
{
for(int j = i + 1; j < numItems; j++)
{
if(items[i] ==items[j])
{
tempa[counter] = j;
counter++;
}
}
}
double tempb [] = new double [ items.length];
int counter2 = 0;
int j =0;
for(int i = 0; i < numItems; i++)
{
if(i != tempa[j])
{
tempb[counter2] = items[i];
counter2++;
}
else
{
j++;
}
}
items = tempb;
numItems = counter2;
}
ロジックは正しいように見えますが、私のコンパイラは、でarrayindexoutofboundsエラーを出します。
tempa[counter] = j;
カウンターがitems.lengthの値を超えるまでどのように成長するのかわかりませんが、ロジックの欠陥はどこにありますか?