//TreeSet 可以有序且可以去除重复
//从大到小
TreeSet treeSet = new TreeSet(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
int s1=(int)o1;
int s2=(int)o2;
if (s1<s2){
return 1;
}
if (s1>s2){
return -1;
}
return 0;
}
});
treeSet.add(10);
treeSet.add(11);
treeSet.add(12);
treeSet.add(14);
treeSet.add(13);
// treeSet.remove("ddd");
// Comparator.comparing()
System.out.println(treeSet);
先实现一个继承Comparable的类并重写compareTo:
package com.example.demo.MapDemo;
/*
*
*@author Jerryli
*@date 2020/5/18
*
*/
public class Person implements Comparable {
private int age;
private String name;
public Person(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Object o) {
if (o instanceof Person){
Person person =(Person) o;
if (this.age < person.age){
return 1;
} else if (this.age>person.age){
return -1;
}
}
return 0;
}
}
Set dm=new TreeSet();
dm.add(new Person(12,"张三"));
dm.add(new Person(13,"李四"));
dm.add(new Person(17,"李四1"));
dm.add(new Person(14,"李四2"));
dm.add(new Person(15,"李四3"));
System.out.println(dm);
```
总结:
当出现compareable和Comparator的时候,以comparator为主。