TreeSet要点:可以对Set集合中的元素进行排序。底层数据结构时二叉树。
保证元素唯一性的依据是compareTo方法return 0。
排序时,当主要条件相同时,一定判断次要条件
通过实现先存先取理解二叉树的原理
二叉树数据结构底层通过调用compareTo方法进行排序
因此想要完成先存先取操作,只需重写compareTo方法使后存入的数据比前一个数据大
明白这个原理之后 程序将十分简单
- package com.mytest;
-
- import java.util.HashSet;
- import java.util.Iterator;
-
- class Person implements Comparable { // Comparable接口强制让Person具备比较性
- private String name;
- private int age;
-
- public Person() {
- }
-
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- public int getAge() {
- return this.age;
- }
-
- // 重写compareTo
- public int compareTo(Object object) {
-
- // 返回1,固定后放入的比前一个小
- return 1;
- }
- }
-
- public class test02 {
- public static void main(String[] args) {
-
- HashSet hashSet = new HashSet();
-
- hashSet.add(new Person("zhangsan01", 11));
- hashSet.add(new Person("lisi", 14));
- hashSet.add(new Person("wangwu", 13));
- hashSet.add(new Person("zhangsan02", 11));
-
- Iterator it = hashSet.iterator();
-
- while (it.hasNext()) {
- Person person = (Person) it.next();
- System.out.println(person.getName() + "________" + person.getAge());
- }
- }
- }
-
复制代码 |
|