示例代码:
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
‘}‘;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public int compareTo(Student o) {
int n2 = this.age - o.age;
int n1 = this.name.compareTo(o.getName());
return n1==0?n2:n1;
}
}
/**
* HashMap集合的使用
* 存储结构:哈希表(数组+链表+红黑树)
* 使用Key的hashcode和equals作为重复依据
*/
public class Demo {
public static void main(String[] args) {
//创建集合
TreeMap<Student,String> student = new TreeMap<>();
//1.添加
Student s1 = new Student("a",1);
Student s2 = new Student("b",2);
Student s3 = new Student("c",3);
student.put(s1,"beijing");
student.put(s2,"shanghai");
student.put(s3,"shenzhen");
student.put(new Student("c",3),"nanjing");
System.out.println(student.size());
System.out.println(student.toString());
//2.删除
//student.remove(s1);
// student.remove(new Student("b",2));
// System.out.println(student.size());
// System.out.println(student.toString());;
//3.遍历
//3.1使用keySet
for (Student s:student.keySet()){
System.out.println(s+":"+student.get(s));
}
System.out.println("---------------------------");
//3.2使用entrySet
for (Map.Entry<Student,String> s:student.entrySet()){
System.out.println(s.getKey()+":"+s.getValue());
}
//4.判断
System.out.println(student.containsKey(s1));
System.out.println(student.containsKey(new Student("b",2)));
}
}
原文:https://www.cnblogs.com/qiudajiang/p/13267942.html