저는 두 명의 사용자간에 쌍을 생성하고 회의에서 일정을 잡을 수있는 쌍으로 구성된 시스템을 구축 중입니다. 선택은 내가 어려움을 겪고있는 기준을 기반으로합니다. 기준은 이전의 일치가 쌍 사이에 존재할 수 없다는 것입니다.목록에서 이미 역사적으로 존재하지 않는 쌍을 생성하십시오.
내 입력은 이메일 주소가 포함 된 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
어떤 것 이 문제를 해결하기위한 좋은 접근법? 내 테스트 솔루션은 지금 두 명의 무작위 사용자를 뽑아 이전 일치를 확인하는 것입니다. 일치하는 항목이 없으면 새로운 임의의 항목 (가능한 경우)을 팝하고 잘못된 사용자 중 하나를 목록으로 다시 보냅니다. 두 사람이 마지막이라면 아무렇게나 맞을 것입니다. 이것은 이미 "기존"쌍으로 내 목록을 기반으로 발생할 수없는 일치를 예측해야하기 때문에 나에게 좋지 않습니다.
이 절차를 수행하는 것과 관련하여 나를 어떻게 데려 갈 수 있는지 알고 계십니까? Java 8 스트림은 재미있어 보이며이를 해결할 수있는 방법 일 수도 있지만 불행히도 매우 익숙합니다.
위의 예에서 1 : 515는 유효한 출력입니다 (그리고 많은 다른 쌍도 유효합니다 ...)? – Amit
두 명의 사용자가 이전 쌍을 가지고 있다면 지금 쌍을 만들 가능성이 더 높습니까? 또는 덜 가능성? –
그래서 이전에 쌍이 발생했다면 다시는 발생할 수 없습니다. –