簡単な質問です。私はオブジェクトを持っています:
class User {
int id;
String username;
public User() {
}
public User(int id, String username) {
this.id = id;
this.username = username;
}
@Override
public String toString() {
return id + " - " + username;
}
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + this.id;
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final User other = (User) obj;
return this.id == other.id;
}
public void setUsername(String username) {
this.username = username;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public int getId() {
return id;
}
}
int id
誰が等しいかは(データベース ID) に基づいて決定されます。
Netbeans はこのメソッドを自動生成しましたhashCode()
:
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + this.id;
return hash;
}
問題は、(すでに) unique を返すだけでこれに利点はありますint id
か?
@Override
public int hashCode() {
return id;
}
どちらにしても衝突はありえません。
右?