`

TreeSet() 类逆向排序(实现compare()方法以便按正常顺序的逆向进行操作)。

    博客分类:
  • Java
阅读更多

/*

仔细观察实现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`的工作原理。`TreeSet`内部基于红黑树(Red-Black Tree)数据结构,这是...

    JCF(List、Set、Map)学习,实现了<key,value>按value排序噢

    对于`TreeSet`,由于其只能存储单个对象,若要按值排序,我们需要创建一个包含键值对的自定义类,然后重写`compareTo()`方法,使其根据值进行比较。例如: ```java class ValueWrapper implements Comparable...

    用TreeSet,添加字符串,按照长度和字母顺序排序

    用TreeSet添加字符串,按照字符串首字母字母顺序和字符串长度顺序排序

    解决TreeSet类的排序问题

    这个方法源自`Comparable`接口,任何希望在TreeSet中进行排序的类都应当实现这个接口。在`compareTo()`方法中,需要定义比较规则,通常比较的是对象的属性。例如,对于数值类型,可以按照数值大小比较;对于字符串,...

    treeset 和 hashlist 实现的扑克牌游戏

    而`TreeSet`则适合按排序顺序进行操作。 在实现扑克牌游戏中,可以结合两者的优势。例如,使用`TreeSet`存储和管理扑克牌,保证其有序和唯一;使用`ArrayList`作为临时容器,用于洗牌或抽取指定数量的牌,因为这些...

    Java SE程序 TreeSet类中自定义CompareTo类

    Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类Java SE程序 TreeSet类中自定义CompareTo类...

    TreeSet 红黑树结构算法

    TreeSet 的方法主要是调用 TreeMap 的方法来提供实现。例如,TreeSet 的 addAll 方法就是调用 TreeMap 的 putAll 方法来添加元素。TreeSet 的其他方法,如 contains、remove、size 等,也都是调用 TreeMap 的对应...

    尚硅谷-实验:TreeSet的自然排序与定制排序.pdf

    本教程特点: 1.更适合零基础学员: ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅...

    排序之HashSet和TreeSet的区别

    在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...

    Java集合框架总结:TreeSet类的排序问题

    java提供了一个Comparable接口,该接口里定义了一个compareTo(Objectobj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行...

    javaTreeSet实现图书管理系统

    对`Library`的`TreeSet&lt;Book&gt;`,可以通过自定义比较器(Comparator)实现按借出次数排序。每个`Book`对象可以维护一个计数器,表示被借出的次数。在比较器中,比较这个计数器,从而实现排序。然后遍历排序后的`...

    浅谈TreeSet中的两种排序方式

    这样,当我们将 Person 对象添加到 TreeSet 中时,它们将根据 Name 属性的字母顺序进行排序。 自然排序的优点是简单易用,只需要实现 Comparable 接口并提供 compareTo 方法即可。但是,它有一定的局限性,例如当...

    java 集合框架(TreeSet练习)

    1. **自然排序**:如果集合中的元素实现了`Comparable`接口,那么`TreeSet`将使用`compareTo()`方法来决定元素的顺序。 2. **自定义比较器**:如果我们需要自定义元素的排序规则,可以通过传递一个实现了`...

    HashSet和TreeSet_围墙之外

    TreeSet则基于TreeMap实现,它维护了元素的排序顺序,可以按照自然排序或自定义比较器进行排序。默认情况下,元素会按照它们的自然顺序(即Comparable接口定义的顺序)排序,如果元素不支持自然排序,可以在创建...

    Java数据结构--13.Java8数据结构TreeSet.pdf

    推荐的SortedSet实现类应提供四种构造器:无参构造器创建按元素自然排序的空集合,接受Comparator的构造器创建按指定比较器排序的空集合,接受Collection参数的构造器创建包含给定元素的新集合,并按元素自然排序,...

    TreeSet 不用自然排序自己做比较器

    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);

    最快的排序算法 java最快的排序-在Java中对列表进行排序的最快方法,排序算法数据结构

    在上述代码中,使用了 ServerInfoComparator 类来实现自定义的比较器,该类实现了 Comparator 接口,并提供了 compare() 方法,该方法用于比较两个 ServerInfo 对象的大小。通过使用 ServerInfoComparator 类,可以...

    【IT十八掌徐培成】Java基础第12天-02.TreeSet实现与Comparable接口.zip

    在`TreeSet`中,元素默认是按照自然顺序或者`Comparator`提供的顺序进行排序的。 `Comparable`接口是Java中一个重要的接口,它定义了一个`compareTo()`方法。任何类如果实现了`Comparable`接口,就表明该类的实例...

    java集合-TreeSet的使用

    TreeSet 是 Java 中的一个集合类,它实现了 SortedSet 接口,并且使用红黑树作为底层数据结构。TreeSet 具有以下主要特点: 排序性:TreeSet 中的元素是有序的,默认按照元素的自然顺序进行排序。或者,可以在创建 ...

    HashSet,TreeSet和LinkedHashSet的区别1

    默认情况下,TreeSet会按照元素的自然排序进行排序,也就是元素必须实现Comparable接口,通过compareTo()方法比较元素大小。如果元素不支持自然排序,或者需要自定义排序规则,可以传递一个Comparator对象给TreeSet...

Global site tag (gtag.js) - Google Analytics