0

2 人のユーザー間のペアリングを作成し、会議でそれらをスケジュールすることになっているペアリング システムを構築しています。選択は、私が理解するのに苦労している基準に基づいています. 基準は、以前の一致がペア間に存在していないことです。

私の入力は、n電子メール アドレスを含むサイズのリストです。このリストはペアに分割されるはずです。制限は、この一致が以前に発生していないことです。

たとえば、私のリストにはいくつかのユーザーIDが含まれます

list = {1,5,6,634,533,515,61,53}

同時に、古いペアが存在するデータベース テーブルがあります。

previous_pairs
---------------------
id     date                    status
1      2016-10-14 12:52:24.214 1
2      2016-10-15 12:52:24.214 2
3      2016-10-16 12:52:24.214 0
4      2016-10-17 12:52:24.214 2

previous_pair_users
---------------------
id     userid
1      1
1      5
2      634
2      553
3      515
3      61
4      53
4      1

この問題を解決するための良いアプローチは何でしょうか? 現在の私のテスト ソリューションは、2 人のランダムなユーザーをポップして、以前の一致をチェックすることです。一致するものが存在しない場合は、新しいランダムをポップし (可能であれば)、間違ったユーザーの 1 人をリストに戻します。2 人が最後であれば、いずれにせよ一致します。すでに「存在する」ペアのリストに基づいて、どの一致が発生しないかを予測する必要があるため、これは私には良くありません。

この手順の構築に関して私をどのように進めればよいか、何か考えはありますか? Java 8ストリームは面白そうで、これを解決する方法かもしれませんが、残念ながら私はそれが初めてです。

4

1 に答える 1