Java TreeSet 应用
来源:互联网 发布:mysql初学者书籍推荐 编辑:程序博客网 时间:2024/06/13 21:45
package test1;
import java.util.*;
public class test20080520 {
public test20080520() {
}
public static void main(String[] args) {
TreeSet tset = new TreeSet();
// tset.add("d");
// tset.add("t");
// tset.add("a");
// tset.add("s");
// tset.add("z");
// tset.add("n");
// tset.add("T");
// tset.add("e");
// tset.add("I");
// tset.add("p");
tset.add(new Students(2,"zhangshan"));
tset.add(new Students(1,"lisi"));
tset.add(new Students(3,"wangwu"));
Iterator it = tset.iterator();
while(it.hasNext()){
System.out.println(it.next().toString());
}
System.out.println(tset);
}
}
class Students implements Comparable{
int num;
String name;
Students(int num,String name){
this.num = num;
this.name = name;
}
public int compareTo(Object o){
Students s = (Students)o;
int ret = num>s.num?1:(num==s.num?0:-1);
if(ret==0){
name.compareTo(s.name);
}
return ret;
}
public String toString(){
return num+":"+name;
}
// static class compareToStudent implements Comparator{
// public int compare(Object o1,Object o2){
// Students s1 = (Students)o1;
// Students s2 = (Students)o2;
// int ret = s1.num>s2.num?1:(s1.num==s2.num?0:-1);
// if(ret ==0){
// ret = s1.name.compareTo(s2.name);
// }
// return ret;
// }
// }
}
comparable是通用的接口,用户可以实现它来完成自己特定的比较,而comparator可以看成一种算法的实现,在需要容器集合collection需要比较功能的时候,来指定这个比较器,这可以看出一种设计模式,将算法和数据分离,就像C++ STL中的函数对象一样。
前者应该比较固定,和一个具体类相绑定,而后者比较灵活,它可以被用于各个需要比较功能的类使用。可以说前者属于“静态绑定”,而后者可以“动态绑定”。
一个类实现了Camparable接口表明这个类的对象之间是可以相互比较的。如果用数学语言描述的话就是这个类的对象组成的集合中存在一个全序。这样,这个类对象组成的集合就可以使用Sort方法排序了。
而Comparator的作用有两个:
1. 如果类的设计师没有考虑到Compare的问题而没有实现Comparable接口,可以通过 Comparator来实现比较算法进行排序
2. 为了使用不同的排序标准做准备,比如:升序、降序或其他什么序
- Java TreeSet 应用
- [JAVA] HashSet 、 LinkedHashSet 、TreeSet 的简单应用
- JAVA TreeSet
- java TreeSet
- java/TreeSet
- Java - TreeSet
- Java TreeSet
- Java TreeSet
- java TreeSet
- java集合类(五)HashSet与TreeSet应用实例
- TreeSet,Comparator集合应用
- java.util(一),TreeSet
- java TreeSet的使用
- java TreeSet的使用
- java se迭代器,treeSet
- java TreeSet 学习
- java Treeset 练习
- Java之TreeSet介绍
- ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL
- 读四人组的设计模式是一种释怀
- 用公式实现动态设置图表的轴数据项
- 10个重要的算法C语言实现源代码
- 汶川地震所有网页都编程灰色的代码
- Java TreeSet 应用
- 教程:在 DB2 DWE 中使用 BIRT,第 3 部分:用 BIRT 创建复杂的报告
- 01-CSS样式表的基本语法-20080520
- can't open the link
- 使用 Google Gears 开发离线应用
- c++ builder在调试过程中捕获异常
- 水晶报表应用高级参数功能
- 水晶报表中筛选记录的三种解决方案
- Page基类的重写