TreeSet() 类逆向排序(实现compare()方法以便按正常顺序的逆向进行操作)。
2006-06-14 10:28
806 查看
/*
仔细观察实现Comparator并覆盖compare()方法的MyComp类(覆盖equals方法既不是必须的,也不是常用的)。在compare()方法内部,String方法compareTo()比较两个字符串。然而由strB-----不是strA------调用compareTo()方法,这导致比较的结果被逆向。
*/
//Use a custom comparator
import java.util.*;
//A reverse comparator for strings.
class MyComp implements Comparator{
public int compare(Object a,Object b){
String strA,strB;
strA = (String)a;
strB = (String)b;
//reverse the comparison
return strB.compareTo(strA);
}
//no need to override equals
}
public class CompDemo{
public static void main(String[] args)
{
//Create a tree set.
TreeSet ts = new TreeSet(new MyComp());
//Ade elements to the tree set
ts.add("C");
ts.add("F");
ts.add("A");
ts.add("B");
ts.add("D");
//Get an iterator
Iterator i = ts.iterator();
//Display elements
while(i.hasNext()){
Object element = i.next();
System.out.println(element + " ");
}
System.out.println();
}
}
仔细观察实现Comparator并覆盖compare()方法的MyComp类(覆盖equals方法既不是必须的,也不是常用的)。在compare()方法内部,String方法compareTo()比较两个字符串。然而由strB-----不是strA------调用compareTo()方法,这导致比较的结果被逆向。
*/
//Use a custom comparator
import java.util.*;
//A reverse comparator for strings.
class MyComp implements Comparator{
public int compare(Object a,Object b){
String strA,strB;
strA = (String)a;
strB = (String)b;
//reverse the comparison
return strB.compareTo(strA);
}
//no need to override equals
}
public class CompDemo{
public static void main(String[] args)
{
//Create a tree set.
TreeSet ts = new TreeSet(new MyComp());
//Ade elements to the tree set
ts.add("C");
ts.add("F");
ts.add("A");
ts.add("B");
ts.add("D");
//Get an iterator
Iterator i = ts.iterator();
//Display elements
while(i.hasNext()){
Object element = i.next();
System.out.println(element + " ");
}
System.out.println();
}
}
相关文章推荐
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
- Java:对集合中的对象进行排序需要实现Interface Comparable接口并实现int compareTo(T o)方法
- php和mysql采用utf-8编码时实现按照一个文本字段的首字母的拼音顺序进行排序的方法
- My_Java之笔记(8)- 实现TreeSet集合的排序方法
- 利用TreeSet进行排序操作
- 黑马程序员自学笔记————对于TreeSet实现排序的两种方法;
- 实现TreeSet排序和遍历map的方法
- Java TreeSet实现学生按年龄大小和姓名排序的方法示例
- 往TreeSet中存入自定义对象,并且使用自定义排序方法(实现comparetor)
- HashSet和TreeSet 分别实现对象的排序操作
- java 移动节点,排序号进行重新排序,以闭包形式实现ztree增删改查操作,其中排序运用到此方法
- Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator
- 集合框架——Set(TreeSet实现Comparator方法排序)
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- PHP实现根据数组某个键值大小进行排序的方法
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 实现对编译出来的名次进行顺序排序
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- php实现数组按拼音顺序排序的方法[原创]_php技巧_脚本之家