G.デビッド
私の目標は、1からのxセクションにyの乱数でarraty記入し、各番号が重複している回数をカウントし、それを印刷することですので。ここでは、コードは次のようになります。
int counter = 1;
int length = random.length;
Map<Integer, Integer> hashMap = new HashMap<>();
for(int i = 0; i < length - 1; i++)
{
if(random[i] == random[i+1])
{
counter++;
}
else
{
hashMap.put(random[i], counter);
System.out.println(random[i] + " duplicate : " + counter + " times.");
counter = 1;
}
}
そして、私の問題があればなステートメントである、それはカウンターに1を追加し、それを保存しませんだって最後の番号が、buplicatedされた回数を示して文句を言いません。どのように私はそれを修正するだろうか?あなたは、全体的なアイデアを持っている場合は、どのように私は、先に行くと、私はヒントを与える配列を持つならば、+のために使用して、これより良い方法を行うことができます。事前に協力いただきありがとうございます。
フェデリコ・ペラルタシャフナー:
Java8 +を使用すると、使用することができますMap.merge
:
Map<Integer, Integer> hashMap = new HashMap<>();
for (int n : random) {
hashMap.merge(n, 1, Integer::sum);
}
これは次のように読み取ります。すべての数のn
中でrandom
、配列、値がマップに入れて1
、それが既に存在しているなら、合計1
の値に。