A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© l6781155 中级黑马   /  2015-7-8 13:38  /  478 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

TreeSet要点:可以对Set集合中的元素进行排序。底层数据结构时二叉树。
                       保证元素唯一性的依据是compareTo方法return 0。
                       排序时,当主要条件相同时,一定判断次要条件

通过实现先存先取理解二叉树的原理
二叉树数据结构底层通过调用compareTo方法进行排序
因此想要完成先存先取操作,只需重写compareTo方法使后存入的数据比前一个数据大
明白这个原理之后 程序将十分简单

  1. package com.mytest;

  2. import java.util.HashSet;
  3. import java.util.Iterator;

  4. class Person implements Comparable { // Comparable接口强制让Person具备比较性
  5. private String name;
  6. private int age;

  7. public Person() {
  8. }

  9. public Person(String name, int age) {
  10.   this.name = name;
  11.   this.age = age;
  12. }

  13. public void setName(String name) {
  14.   this.name = name;
  15. }

  16. public String getName() {
  17.   return this.name;
  18. }

  19. public void setAge(int age) {
  20.   this.age = age;
  21. }

  22. public int getAge() {
  23.   return this.age;
  24. }

  25. // 重写compareTo
  26. public int compareTo(Object object) {
  27.   
  28.   // 返回1,固定后放入的比前一个小
  29.   return 1;
  30. }
  31. }

  32. public class test02 {
  33. public static void main(String[] args) {

  34.   HashSet hashSet = new HashSet();

  35.   hashSet.add(new Person("zhangsan01", 11));
  36.   hashSet.add(new Person("lisi", 14));
  37.   hashSet.add(new Person("wangwu", 13));
  38.   hashSet.add(new Person("zhangsan02", 11));

  39.   Iterator it = hashSet.iterator();

  40.   while (it.hasNext()) {
  41.    Person person = (Person) it.next();
  42.    System.out.println(person.getName() + "________" + person.getAge());
  43.   }
  44. }
  45. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马