gpt4 book ai didi

java - 学习 HashMap

转载 作者:行者123 更新时间:2023-12-01 16:38:49 30 4
gpt4 key购买 nike

我正在学习如何使用 hashMap,有人可以检查我编写的这段代码并告诉我它是否正确吗?这个想法是有一个在公司工作的员工列表,我想从 hashMap 添加和删除员工。

public class Staff
{
private HashMap<String, String>id;

public Staff(String name, String number)
{
id = new HashMap<>(name,number);
}

public addStaff()
{
id.add("Joe","1234A2);
}

public removeStaff()
{
id.remove("Joe","1234A2);
}
}

最佳答案

在你的类(class)中,你需要更改/添加如下内容:

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() 对于大多数用途来说不太有用,因为它们仅添加和删除一名工作人员“Joe”。一种更有用的做事方式是

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 与其他数据结构的不同之处在于它有一个“键”,可以让您检索一个项目。如果您事先没有该项目的 key ,则无法以提高性能的方式使用Map

请注意,除了返回相同 hashCode 的相等项之外,HashMap 还要求键正确遵循相等规则。基本上,如果一个对象 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 正常工作所必需的。

关于java - 学习 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307802/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com