Java には、文字列値と整数カウントを持つ 2 つの同一の配列リストがあります。ここで、これらの配列リストを単一の配列リストにマージする必要があります。値が存在する場合はカウントをインクリメントし、値が存在しない場合は値とカウントをそのまま追加します。
問題は、for ループで反復処理を行い、すべての値をチェックする以外に、優雅にできることはありますか?
できません。カスタム ロジックが多すぎます。反復、チェック、追加 - これが最良のアプローチであり、読みやすくなります。
技術的には、Multiset
from guava を使用できますが、カウントはユーザーではなくコレクション自体によって処理されるため、さらに作業が必要になる場合があります。
問題は、for ループで反復処理を行い、すべての値をチェックする以外に、優雅にできることはありますか?
短い答えはノーです。
HashMap をコンテナーとして使用する方が良いでしょう。少なくともマージ操作はより高速に実行されます。いずれにせよ、ループが必要です。(カウントを更新できる addAll / putAll がないため)。