我已经有了遍历TreeSet的解决方案。我的问题与性能有关,是我实施最佳方案的方式吗?请参阅下面的代码示例。
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add("F");
ts.add("B");
ts.add("H");
ts.add("Z");
while (!ts.isEmpty())
{
String last = (String)ts.last();
System.out.println(last);
ts.remove(last);
}
// OUTPUT: Z H F B
}
答案 0 :(得分:3)
似乎很简单
TreeSet ts = new TreeSet();
Iterator i = ts.descendingIterator();
while(i.hasNext()) {
Object next = i.next();
}
或
for(Object e : ts.descendingSet()) {
}
对于1.6以下的Java,您可以尝试
TreeSet tmp = new TreeSet(Collections.reverseOrder());
tmp.addAll(ts);
for(Object e : tmp) {
}
答案 1 :(得分:0)
JDK 5兼容方式:在比较器反转的情况下创建一个新的新集合。
TreeSet<String> trev = new TreeSet<String>(Collections.reverseOrder());
trev.addAll(ts);
//now you can just iterate which the usual forward iterator.
Iterator i = trev.iterator();
while(i.hasNext()) {
String next = i.next();
}