イテレーションは、バルク「Collection.addAll」で置き換えることができます

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の値に

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=221790&siteId=1