TreeSet自定义排序(两个数的差距,从大到小排序,可以扩充到两个点的距离等)
TreeSet set = new TreeSet();
set.comparator();
set.add(10);
set.add(5);
set.add(8);
set.add(100);
set.add(-12);
Iterator it = set.iterator();
while (it.hasNext()) {
int str = (int)it.next();
System.out.println(str);
}
//按 ComparableExamp 排序,两个数按差距大小,倒序排序
TreeSet<Entity> tree = new TreeSet<Entity>(new ComparableExamp());
tree.add(new Entity(1,9));
tree.add(new Entity(3,6));
tree.add(new Entity(5,1));
tree.add(new Entity(9,20));
Iterator<Entity> ite = tree.iterator();
while (ite.hasNext()) {
Entity entity = ite.next();
System.out.println(entity);
}
public class Entity{
public int num1;
public int num2;
public Entity(int num1,int num2){
this.num1 = num1;
this.num2 = num2;
}
@Override
public String toString() {
return "Entity [num1=" + num1 + ", num2=" + num2 + "]";
}
}
import java.util.Comparator;
public class ComparableExamp implements Comparator<Entity>{
@Override
public int compare(Entity o1, Entity o2) {
int sum = o1.num1 - o1.num2;
int sum2 = o2.num1 - o2.num2;
return sum - sum2;
}
}