AntSoul

它总是在行走,行走,永远的行走…… 行走是它生存的恒久姿态和最佳造型。 它似乎有一双不知疲倦的脚。 ———我说的是蚂蚁。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  42 随笔 :: 0 文章 :: 1 评论 :: 0 Trackbacks

┳ TreeSet (实现了SortedSet接口的类)
1.  TreeSet是依靠TreeMap来实现的。
2.  TreeSet是一个有序集合,TreeSet中的元素按照升序排列,缺省是按照自然排序,一位着TreeSet要实现Comparable接口。
3.  可以在构造TreeSet对象时,传递实现了Comparable接口的比较器对象。
demo

import java.util.*;

class TreeSetTest
{
 public static void main(String[] args){
   TreeSet ts = new TreeSet();
  
   ts.add(new Student("one",1));
   ts.add(new Student("two",4));
   ts.add(new Student("three",3));
  
   Iterator it = ts.iterator();
   while(it.hasNext()){
    System.out.println(it.next());
  }
 }
}

class Student implements Comparable
{
 private String name;
 private int num;
 
 //为了调用方便声明为static
 static class StudentComparator implements Comparator
 {
   public int compare(Object o1,Object o2){
    Student s1 =(Student)o1;
    Student s2 =(Student)o2;
    int result;
   
    result = s1.num > s2.num ? 1 :(s1.num==s2.num ? 0 : -1);
    if(result == 0){ //student的num相同,比较name,因为name为String类型,它实现了Comparable<String>
      result = s1.name.compareTo(s2.name);
    }
    return result;
   } 
 }
 
 public Student(String name,int num){
  this.name = name;
  this.num = num;
 }
 
 public int compareTo(Object o){
  Student s =(Student)o;
  return num > s.num ? 1 : (num == s.num ? 0 : -1);
 }
 
 public String toString(){
  return "num="+num+" "+"name="+name;
 }
}

posted on 2007-03-10 18:02 yok 阅读(152) 评论(0)  编辑  收藏 所属分类: CoreJava

只有注册用户登录后才能发表评论。


网站导航: