/*
仔细观察实现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();
}
}
分享到:
相关推荐
在这个场景下,我们使用`TreeSet`来实现学生成绩的排序,无需额外的排序操作,这大大简化了代码并提高了效率。 首先,我们需要理解`TreeSet`的工作原理。`TreeSet`内部基于红黑树(Red-Black Tree)数据结构,这是...
对于`TreeSet`,由于其只能存储单个对象,若要按值排序,我们需要创建一个包含键值对的自定义类,然后重写`compareTo()`方法,使其根据值进行比较。例如: ```java class ValueWrapper implements Comparable...
用TreeSet添加字符串,按照字符串首字母字母顺序和字符串长度顺序排序
这个方法源自`Comparable`接口,任何希望在TreeSet中进行排序的类都应当实现这个接口。在`compareTo()`方法中,需要定义比较规则,通常比较的是对象的属性。例如,对于数值类型,可以按照数值大小比较;对于字符串,...
而`TreeSet`则适合按排序顺序进行操作。 在实现扑克牌游戏中,可以结合两者的优势。例如,使用`TreeSet`存储和管理扑克牌,保证其有序和唯一;使用`ArrayList`作为临时容器,用于洗牌或抽取指定数量的牌,因为这些...
Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类...
TreeSet 的方法主要是调用 TreeMap 的方法来提供实现。例如,TreeSet 的 addAll 方法就是调用 TreeMap 的 putAll 方法来添加元素。TreeSet 的其他方法,如 contains、remove、size 等,也都是调用 TreeMap 的对应...
本教程特点: 1.更适合零基础学员: ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅...
在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...
java提供了一个Comparable接口,该接口里定义了一个compareTo(Objectobj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行...
对`Library`的`TreeSet<Book>`,可以通过自定义比较器(Comparator)实现按借出次数排序。每个`Book`对象可以维护一个计数器,表示被借出的次数。在比较器中,比较这个计数器,从而实现排序。然后遍历排序后的`...
这样,当我们将 Person 对象添加到 TreeSet 中时,它们将根据 Name 属性的字母顺序进行排序。 自然排序的优点是简单易用,只需要实现 Comparable 接口并提供 compareTo 方法即可。但是,它有一定的局限性,例如当...
1. **自然排序**:如果集合中的元素实现了`Comparable`接口,那么`TreeSet`将使用`compareTo()`方法来决定元素的顺序。 2. **自定义比较器**:如果我们需要自定义元素的排序规则,可以通过传递一个实现了`...
TreeSet则基于TreeMap实现,它维护了元素的排序顺序,可以按照自然排序或自定义比较器进行排序。默认情况下,元素会按照它们的自然顺序(即Comparable接口定义的顺序)排序,如果元素不支持自然排序,可以在创建...
推荐的SortedSet实现类应提供四种构造器:无参构造器创建按元素自然排序的空集合,接受Comparator的构造器创建按指定比较器排序的空集合,接受Collection参数的构造器创建包含给定元素的新集合,并按元素自然排序,...
public int compare(String o1,String o2) { return o1.length()-o2.length(); } }; TreeSet ts = new TreeSet(com); ts.add("string"); ts.add("char"); ts.add("nothing�"); System.out.println(ts);
在上述代码中,使用了 ServerInfoComparator 类来实现自定义的比较器,该类实现了 Comparator 接口,并提供了 compare() 方法,该方法用于比较两个 ServerInfo 对象的大小。通过使用 ServerInfoComparator 类,可以...
在`TreeSet`中,元素默认是按照自然顺序或者`Comparator`提供的顺序进行排序的。 `Comparable`接口是Java中一个重要的接口,它定义了一个`compareTo()`方法。任何类如果实现了`Comparable`接口,就表明该类的实例...
TreeSet 是 Java 中的一个集合类,它实现了 SortedSet 接口,并且使用红黑树作为底层数据结构。TreeSet 具有以下主要特点: 排序性:TreeSet 中的元素是有序的,默认按照元素的自然顺序进行排序。或者,可以在创建 ...
默认情况下,TreeSet会按照元素的自然排序进行排序,也就是元素必须实现Comparable接口,通过compareTo()方法比较元素大小。如果元素不支持自然排序,或者需要自定义排序规则,可以传递一个Comparator对象给TreeSet...