したがって、私は2d配列(本当にList of Lists)を持っています。2d配列のハッシュアイテムですが、1つのインデックスにしかありません
基本レイアウトは一致のリストであり、各一致はID番号と日付を持ちます。私は各IDが一度しか現れないようにすべての重複を削除する必要があります。一致のリストにIDが複数回表示された場合は、最新の日付で試合を行いたいと思います。
私の現在の解決策では、List of MatchesをHashSetに追加し、それをArrayListに変換しています。しかし、それは正確なマッチの重複を取り除くことであり、同じIDが異なる日付の場合は複数回出現します。
Set<Match> deDupedMatches = new HashSet<Match>();
deDupedMatches.addAll(originalListOfMatches);
List<Match> finalList = new ArrayList<Match>(deDupedMatches)
で来て私の元データが
{(1, 1-1-1999),(1, 2-2-1999),(1, 1-1-1999),(2, 3-3-2000)}
であれば、私は戻って取得することは
{(1, 1-1-1999),(1, 2-2-1999),(2, 3-3-2000)}
である。しかし、私が本当に探していますがそれだろうなソリューションです私を与える
{(1, 2-2-1999),(2, 3-3-2000)}
元のリストを同じ基本的な方法でハッシュしているが、IDだけを使用しているという曖昧な考えがありました。基本的には、私は反復可能なIDに基づいて "バケツ"で終わるだろうし、それに複数のマッチがあったバケツで正しいものを選ぶことができた。私をぶつけているのは実際のハッシュです。私はマッチを私が考えているやり方で崩壊させることができるかどうか、あるいはどうすればよいか分かりません。
... – Javant
を.putこの質問には、Matchオブジェクトの2次元配列が正しく与えられています。あなたは重複権利がないリストにそれを圧縮したいですか?辞書を使用して2-Dリストをループすることはできませんし、キー(この場合はID)が存在するかどうかをチェックし、そうであれば日付を比較しますか?多分私はこの質問を非常によく理解していないでしょう。 –
@MichaelPlattあなたは考えが正しいので、私はそのオプションも考慮しています。私は主に、すべての要素を繰り返し処理し、すべての衝突をチェックするだけでなく、効率的な/実行可能な方法があるのだろうかと疑問に思っていた。 –