- 简单的
public class TreeDemo4 {
public static void main(String[] args) {
Set<String> set = new TreeSet<String>();
set.add("222");
set.add("111");
set.add("444");
set.add("333");
set.forEach(t->System.out.println(t));
}
}
- 实现compable接口,重写compareto方法,需要修改类元素
public class TreeDemo {
public static void main(String[] args) {
Set<Stu> set = new TreeSet<Stu>();
set.add(new Stu("222",2));
set.add(new Stu("5",5));
set.add(new Stu("111",1));
set.add(new Stu("3",3));
set.forEach(t->System.out.println(t));
}
}
class Stu implements Comparable<Stu>{
String name;
Integer id;
public Stu(String name, Integer id) {
this.name = name;
this.id = id;
}
@Override
public int compareTo(Stu o) {
return this.id - o.id;
}
@Override
public String toString() {
return "Stu [name=" + name + ", id=" + id + "]";
}
}
- 自定义compator方法,不需要修改类元素
public class TreeDemo {
public static void main(String[] args) {
Comparator<Stu> comparator = new Comparator<Stu>() {
@Override
public int compare(Stu o1, Stu o2) {
return o1.id - o2.id;
}
};
Set<Stu> set = new TreeSet<Stu>(comparator);
set.add(new Stu("222",2));
set.add(new Stu("5",5));
set.add(new Stu("111",1));
set.add(new Stu("3",3));
set.forEach(t->System.out.println(t));
}
}
class Stu{
String name;
Integer id;
public Stu(String name, Integer id) {
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "Stu [name=" + name + ", id=" + id + "]";
}
}
- lamda表达式
public class TreeDemo {
public static void main(String[] args) {
Set<Stu> set = new TreeSet<Stu>((p1,p2)->p1.id-p2.id);
set.add(new Stu("222",2));
set.add(new Stu("5",5));
set.add(new Stu("111",1));
set.add(new Stu("3",3));
set.forEach(t->System.out.println(t));
}
}
class Stu{
String name;
Integer id;
public Stu(String name, Integer id) {
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "Stu [name=" + name + ", id=" + id + "]";
}
}