これは私が予想したよりも難しいです。私はソートされたStringList(単語)のArrayListを持っています。私の仕事は繰り返しを取り除き、各単語のリストを出力し、その後に単語の繰り返し数を出力します。それが私が予想していた以上に複雑だと言っても過言ではない。さまざまなことを試した後、私はHashMapを使って単語(キー)、値(繰り返し)を保存することに決めました。ArrayListで重複する要素とカウントの繰り返しを削除する
これはコードです。 DictionaryはソートされたArrayListであり、そのHashMapは繰り返しです。それは私を+する必要があるにもかかわらず、私は理解していないことを何らかの理由(私は初心者です)については
public void countElements()
{
String word=dictionary.get(0);
int wordCount=1;
int count=dictionary.size();
for (int i=0;i<count;i++)
{
word=dictionary.get(i);
for (int j=i+1; j<count;j++)
{
if(word.equals(dictionary.get(j)))
{
wordCount=wordCount+1;
repetitions.put(word, wordCount);
dictionary.remove(j--);
count--;
}
}
}
、私は1でメソッド、変数jデクリメント(j--)dictionary.removeを呼び出した後、 1。私は何が欠けていますか?どのようにこれを正しく行うための任意のアイデアをいただければ幸いです。イテレータを使用するのが最善であることはわかっていますが、それはさらに混乱する可能性があります。 多くのありがとうございます。
イテレータを使用するのは最良ではありません。 –
あなたはそれを思い描いています。リストはソートする必要はありません。各単語について、それが既に地図にあるかどうかをチェックします。 trueの場合、マップの値をインクリメントします。そうでない場合は、値を1にマップに追加します。ストリームでは、1行のコードで行えます。 –