目录
使用Comparator接口打破people类原有规则按id排序
Comparable接口是设计层面的排序 在使用treeset进行添加时使用的该接口排序规则
- 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
{ - 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;
- }
- }

排序规则从小到大
在设计层面不满足自己需要的排序规则时,可使用自定义排序规则
- 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
() { - @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
{ - 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;
- }
- }

显而易见排序规则被改变