如何在树集中按降序存储字符串对象?

use*_*028 1 java collections

在给定的代码中,TreeSet中的String对象(name)将按升序显示.如何使用TreeSet以降序显示它?

 import java.util.*;
 public class Lab15   {
 public static void main  (String[ ] args) {
TreeSet set1 = new TreeSet ();
 set1.add   (new Employee3(11,"shake"));
set1.add(new Employee3(15,"mayur"));
set1.add(new Employee3(13,"podu"));
set1.add(new Employee3(18,"manish"));
set1.add(new Employee3(17,"goku"));

Iterator it1=set1.iterator();
while(it1.hasNext()){
    System.out.println(it1.next());
}      
  }
class Employee3 implements Comparable{

int eid;
String name;
Employee3(int eid,String name) {
    this.eid=eid;
    this.name=name;
}
public String toString(){
    return eid+"\t"+name;
}

public int compareTo(Object obj) {
    if(obj instanceof Employee3){
        Employee3 em=(Employee3)obj;
        return this.name.compareTo(em.name);
    }
    return 0;
}


    }
Run Code Online (Sandbox Code Playgroud)

解释一下,如何在树集中按降序存储字符串对象?

Mar*_*nik 9

您只需要使用实例化TreeSet

new TreeSet<>(Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

这是一个比较器,它可以反转对象的自然顺序.

  • `reverseOrder()`*的返回值是*比较器. (2认同)