Все,
Мне интересно, как наиболее эффективно проверить, существует ли уже строка в списке?,У объекта Foo есть пара ключ / значение (а также другие поля, которые не применимы к этому вопросу).Каждый набор в списке уникален.
В качестве примера:
List[
Set<Foo>[Foo_Key:A, Foo_Value:1][Foo_Key:B, Foo_Value:3][Foo_Key:C, Foo_Value:4]
Set<Foo>[Foo_Key:A, Foo_Value:1][Foo_Key:B, Foo_Value:2][Foo_Key:C, Foo_Value:4]
Set<Foo>[Foo_Key:A, Foo_Value:1][Foo_Key:B, Foo_Value:3][Foo_Key:C, Foo_Value:3]
]
Я хочу иметь возможность проверить наличие нового набора (например: Set [Foo_Key: A, Foo_Value: 1] [Foo_Key: B, Foo_Value:3] [Foo_Key: C, Foo_Value: 4]) существует в списке.
Каждый набор может содержать от 1 до 20 объектов Foo.Список может содержать от 1 до 100 000 комплектов.Не гарантируется, что Foo будут в одном и том же порядке в каждом наборе (так что их придется каким-то образом предварительно отсортировать для правильного порядка, например TreeSet)
Идея 1: Будет ли разумнее повернуть этов матрицу?Где каждый столбец будет Foo_Key, а каждая строка будет содержать Foo_Value?Пример:
A B C
-----
1 3 4
1 2 4
1 3 3
А затем искать строку, содержащую новые значения?
Идея 2. Будет ли более разумным создать хэш каждого набора, а затем сравнить его с хешемнового набора?
Есть ли более эффективный способ, о котором я не думаю?
Спасибо