В вашем классе вам нужно изменить / добавить вещи, чтобы они выглядели так:
private HashMap<String, String> id;
public Staff(String name, String number)
{
id = new HashMap<String, String>();
}
public addStaff()
{
id.put("Joe","1234A2");
}
public removeStaff()
{
id.remove("Joe");
}
, чтобы правильно использовать HashMap
.
Обратите внимание, что addStaff(
) и removeStaff()
вряд ли будут очень полезны для большинства целей, потому что они только добавляют и удаляют одного сотрудника "Джо".Более полезный способ сделать это:
public void addStaff(StaffMember member) {
id.put(member.getName(), member);
}
public StaffMember get(String name) {
// this will return null if the member's name isn't a key in the map.
return id.get(name);
}
Что отличает Map
от других структур данных, так это то, что он имеет "ключ", который позволяет вам получить один элемент.Вы не можете использовать Map
таким образом, чтобы повысить производительность, если у вас заранее нет ключа элемента.
Обратите внимание, что HashMap
s требует, чтобы ключи правильно следовали правилам равенства вдополнение к равным элементам, возвращающим тот же hashCode.В основном, если объект a
и другой объект b
считаются равными, то
// Reflexive property
a.equals(a) must return true
// Symmetric property
if (a.equals(b)) then b.equals(a) must return true
// Transitive property
if (a.equals(b) and b.equals(c)) then a.equals(c) must return true
// Additional requirements to make hash related algorithms work properly
a.hashCode() == b.hashCode() // must be true
Часть hashCode()
выходит за рамки простого равенства и необходима для правильной работы HashMap
.