黑马程序员技术交流社区
标题:
用TreeSet完成先存先取
[打印本页]
作者:
l6781155
时间:
2015-7-8 13:38
标题:
用TreeSet完成先存先取
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());
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2