Привет, ребята, я никогда не писал компаратор b4 и im, имеющий настоящую проблему. Я создал хэш-таблицу.Проблема компаратора Hashtable
Hashtable <String, Objects> ht;
Может ли кто-нибудь показать, как вы напишете компаратор для Hashtable? примеры, которые я видел выше, равны и все, но я просто понятия не имею. Код ниже не мой, но пример, который я нашел, ключевая вещь в hashtables означает, что я не могу сделать это, как я предполагаю.
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));
}
}
Вам действительно нужно сравнить два экземпляра 'Hashtable' или два элемента, содержащихся в хэш-таблице? –
Это примерно в 100 раз дольше, чем любой компаратор, который я когда-либо писал. Зачем вам нужен компаратор? Что заставляет вас думать, что вы делаете? Как выглядят ваши ключи? – Pointy
Вы действительно внедрили свою собственную хэш-таблицу или используете 'java.util.Hashtable' с опечаткой в вашем коде (' HashTable')? –