目录
使用Comparator接口打破people类原有规则按id排序
Comparable接口
Comparable接口是设计层面的排序 在使用treeset进行添加时使用的该接口排序规则
使用Comparable接口进行people类按id排序
public class match {
public static void main(String[] args) {
Solution666 s=new Solution666();
people p1=new people(4);
people p2=new people(3);
people p3=new people(1);
people p4=new people(9);
TreeSet t=new TreeSet();
t.add(p1);
t.add(p2);
t.add(p3);
t.add(p4);
System.out.println(t);
}
}
class people implements Comparable<people>{
int id;
int name;
public people(){
}
@Override
public String toString() {
return "people{" +
"id=" + id +
", name=" + name +
'}';
}
public people(int id) {
this.id = id;
}
@Override
public int compareTo(people o) {
return this.id-o.id;
}
}
排序规则从小到大
Comparator接口
在设计层面不满足自己需要的排序规则时,可使用自定义排序规则
使用Comparator接口打破people类原有规则按id排序
public class match {
public static void main(String[] args) {
Solution666 s=new Solution666();
people p1=new people(4);
people p2=new people(3);
people p3=new people(1);
people p4=new people(9);
TreeSet t=new TreeSet(new Comparator<people>() {
@Override
public int compare(people o1, people o2) {
return o2.id-o1.id;
}
});
t.add(p1);
t.add(p2);
t.add(p3);
t.add(p4);
System.out.println(t);
}
}
class people implements Comparable<people>{
int id;
int name;
public people(){
}
@Override
public String toString() {
return "people{" +
"id=" + id +
", name=" + name +
'}';
}
public people(int id) {
this.id = id;
}
@Override
public int compareTo(people o) {
return this.id-o.id;
}
}
显而易见排序规则被改变