public class TreeSetTest {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(2);
treeSet.add(3);
treeSet.add(1);
treeSet.add(2);
treeSet.add(5);
treeSet.add(4);
System.out.println(treeSet); //按照升序遍历 去重
}
}
底层是二叉树 首先插入第一个节点 2
当插入第二个元素时判断 是否比2 小 小就放左边,大就放右边
那么3 就放2的右边
插入第三个元素 1 放在2的左边
插入第四个元素 相等 去重
插入第五个元素 5 放置 3的右边
插入第六个元素 4 放在 3 的左边
2
1 3
4 5
当前二叉树遍历是中序遍历


@AllArgsConstructor
@NoArgsConstructor
@Data
public class Student /*implements Comparable<Student>*/{
private String name;
private int age;
/* @Override
public int compareTo(Student student) {
return this.getAge()-student.getAge();
}*/
}
class Bijiaoqi implements Comparator<Student>{
@Override
public int compare(Student student1, Student student2) {
// return student1.getAge()-student2.getAge();
return ((String)(student1.getName())).compareTo(student2.getName());
}
}
public class Test03 {
public static void main(String[] args) {
Bijiaoqi bijiaoqi = new Bijiaoqi();
TreeSet<Student> students = new TreeSet<>(bijiaoqi);
students.add(new Student("azhansgan",21));
students.add(new Student("bzhansgan",11));
students.add(new Student("czhansgan",31));
students.add(new Student("bzhansgan",41));
System.out.println(students.size());
System.out.println(students);
}
}