HashMap HashSet, . , , , (, id). + + , equals hashCode. Employee HashMap.
, , + + , hashCode/equals :
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Employee employee = (Employee) o;
if (job != null ? !job.equals(employee.job) : employee.job != null) return false;
if (name != null ? !name.equals(employee.name) : employee.name != null) return false;
if (salary != null ? !salary.equals(employee.salary) : employee.salary != null) return false;
return true;
}
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (job != null ? job.hashCode() : 0);
result = 31 * result + (salary != null ? salary.hashCode() : 0);
return result;
}
Employee , Hash. HashSet HashMap:
List<Employee> employeeList = Arrays.asList(
new Employee("name", "job", 100),
new Employee("name", "job2", 300),
new Employee("name2", "job", 200)
);
Set<Employee> hashSet = new HashSet<Employee>(employeeList);
Map<Employee, Employee> hashMap = new HashMap<Employee, Employee>();
for (Employee employee : employeeList) {
hashMap.put(employee, employee);
}
HashSet, , HashMap HashMap , :
public HashSet() {
map = new HashMap<E,Object>();
}
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}