Treeset集合排序:
方法一:* 自定义对象的类 实现 Comparable 接口 重写 compareTo() 方法
方法二:比较器排序 实现 Comparator 接口 重写 compare()方法
学习内容:Treeset排序 方法一
import java.util.Iterator;
import java.util.TreeSet;
public class text {
public static void main(String[] args) {
TreeSet<text2> treeSet = new TreeSet<text2>();
text2 text2 = new text2("张三", 12, "男");
text2 text3 = new text2("张李", 13, "女");
text2 text4 = new text2("张王五", 16, "男");
text2 text5 = new text2("张六", 12, "男");
treeSet.add(text2);
treeSet.add(text3);
treeSet.add(text4);
treeSet.add(text5);
Iterator<text2> iterator = treeSet.iterator();
//迭代器便利
while (iterator.hasNext()) {
text2 next = iterator.next();
System.out.println(next);
}
}
}
public class text2 implements Comparable<text2> {
String name;
int age;
String sex;
public text2() {
}
public text2(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "text2{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
//重写compareTo方法
@Override
public int compareTo(text2 o) {
//比较年龄
int i = this.age - o.age;
//比较性别
int i1 = (i == 0) ? this.sex.compareTo(o.sex) : i;
//比较姓名
int i2 = (i1 == 0) ? this.name.compareTo(o.name) : i1;
return i2;
}
}
方法二:比较器
import java.util.Comparator;
public class compar implements Comparator<text2> {
//重写Compartor方法
@Override
public int compare(text2 o1, text2 o2) {
int i = o1.age - o2.age;
int i1 = (i == 0) ? o1.name.compareTo(o2.name) : i;
return i1;
}
}
compar g=new compar();
TreeSet<text2> treeSet = new TreeSet<text2>(g);