Ошибка была в том, что в какой-то момент я открыл файл в текстовом редакторе моего компьютера по умолчанию, который, как мне кажется, как-то повредил. Я не совсем уверен, почему, потому что я открыл .py файлы в нем раньше без проблем.
Я исправил проблему, создав новый файл и отредактировав его с помощью emacs, и просто перепечатав его (это было не так уж и много)
Моя первая мысль была: самый легкий способ сделать это, я думаю, было бы двумя картами.
Map< String, Map< String,Employee> > _employees;
, Но от того, на что это похоже, Вы просто хотите быть в состоянии искать сотрудника или SSN или идентификатором. Что должно остановить Вас тогда от создания двух карт, или в худшем случае класса, который содержит две карты?
Как разъяснение, Вы ищете , первичный ключ являющийся сотрудниками однозначно определяется комбинацией их SSN и идентификатора, но не или один отдельно, или Вы ищете два различных способа сослаться на сотрудника?
Элегантная Платформа , кажется, обеспечивает точно, что Вы ищете. От Javadoc:
А двумерный hashmap, HashMap, который позволяет Вам обратиться к значениям через два ключа, а не один
, соответствующий класс TwoDHashMap. Это также обеспечивает ThreeDHashMap.
Я воображаю основной , ключ был бы empId
, таким образом, я создам Map
с этим как ключ, т.е. empId
---> Employee
. Все другие уникальные атрибуты (например, ssn
) рассматривали бы как [1 114] вторичный и будут использовать отдельный Map
с как таблица поиска для empId
(например, ssn
---> empId
).
Эта реализация облегчает добавлять/удалять сотрудников, так как только необходимо изменить один Map
, т.е. empId
---> Employee
; другой Map
с может быть восстановлена только при необходимости.