Какая-либо реализация Карты <K1, K2, V>, т.е. два ключа?

Ошибка была в том, что в какой-то момент я открыл файл в текстовом редакторе моего компьютера по умолчанию, который, как мне кажется, как-то повредил. Я не совсем уверен, почему, потому что я открыл .py файлы в нем раньше без проблем.

Я исправил проблему, создав новый файл и отредактировав его с помощью emacs, и просто перепечатав его (это было не так уж и много)

7
задан Miserable Variable 22 November 2008 в 08:49
поделиться

3 ответа

Моя первая мысль была: самый легкий способ сделать это, я думаю, было бы двумя картами.

Map< String, Map< String,Employee> > _employees;

, Но от того, на что это похоже, Вы просто хотите быть в состоянии искать сотрудника или SSN или идентификатором. Что должно остановить Вас тогда от создания двух карт, или в худшем случае класса, который содержит две карты?

Как разъяснение, Вы ищете , первичный ключ являющийся сотрудниками однозначно определяется комбинацией их SSN и идентификатора, но не или один отдельно, или Вы ищете два различных способа сослаться на сотрудника?

4
ответ дан 7 December 2019 в 01:28
поделиться

Элегантная Платформа , кажется, обеспечивает точно, что Вы ищете. От Javadoc:

А двумерный hashmap, HashMap, который позволяет Вам обратиться к значениям через два ключа, а не один

, соответствующий класс TwoDHashMap. Это также обеспечивает ThreeDHashMap.

2
ответ дан 7 December 2019 в 01:28
поделиться

Я воображаю основной , ключ был бы empId, таким образом, я создам Map с этим как ключ, т.е. empId---> Employee. Все другие уникальные атрибуты (например, ssn) рассматривали бы как [1 114] вторичный и будут использовать отдельный Map с как таблица поиска для empId (например, ssn---> empId).

Эта реализация облегчает добавлять/удалять сотрудников, так как только необходимо изменить один Map, т.е. empId---> Employee; другой Map с может быть восстановлена только при необходимости.

4
ответ дан 7 December 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: