gpt4 book ai didi

java - 哈希表比较器问题

转载 作者:行者123 更新时间:2023-11-30 05:13:44 25 4
gpt4 key购买 nike

大家好,我从来没有写过比较器 b4,我遇到了一个真正的问题。我创建了一个哈希表。

Hashtable <String, Objects> ht;

有人可以展示一下如何为哈希表编写比较器吗?我见过的例子超越了等于和一切,但我根本不知道。下面的代码不是我的,而是我发现的一个例子,哈希表中的关键部分意味着我不能像这样做,我猜。

 public class Comparator implements Comparable<Name> {
private final String firstName, lastName;

public void Name(String firstName, String lastName) {
if (firstName == null || lastName == null)
throw new NullPointerException();
this.firstName = firstName;
this.lastName = lastName;
}

public String firstName() { return firstName; }
public String lastName() { return lastName; }

public boolean equals(Object o) {
if (!(o instanceof Name))
return false;
Name n = (Name)o;
return n.firstName.equals(firstName) &&
n.lastName.equals(lastName);
}

public int hashCode() {
return 31*firstName.hashCode() + lastName.hashCode();
}

public String toString() {
return firstName + " " + lastName;
}

public int compareTo(Name n) {
int lastCmp = lastName.compareTo(n.lastName);
return (lastCmp != 0 ? lastCmp :
firstName.compareTo(n.firstName));
}
}

最佳答案

比较器会告诉您两个项目中哪一个更大。如果这对您的哈希表有意义,那么只有您可以说出其含义是什么。以这种方式比较两个哈希表是非常不寻常的。

关于java - 哈希表比较器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2397003/

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