Tem como percorrer um TreeSet ao contrario?

3 respostas
A

Pessoal, a duvida é: Tem como percorrer um TreeSet ao contrario?

Ou seja do ultimo pro primeiro… tem como???

3 Respostas

Luca

Olá

Sim, a partir do Java 6, TreeSet implementa NavigableSet. Então você pode usar descendingIterator

[]s
Luca

T

Se você, por algum motivo, não puder usar Java 6, pode criar um Comparator especializado, e criar um novo java.util.TreeSet.

import java.util.*;

class PercorrendoTreeSet {
    private static void printSet (Set<String> set) {
        for (String s : set) {
            System.out.println (s);
        }
        System.out.println();
    }
    public static void main(String[] args) {
        SortedSet<String> ss1 = new TreeSet<String>();
        ss1.add ("Amazonas"); 
        ss1.add ("Ceará"); 
        ss1.add ("Bahia"); 
        ss1.add ("Distrito Federal");
        System.out.println ("Percorrendo na ordem direta");
        printSet (ss1);
        System.out.println ("Usando um comparator 'invertido' (Java 1.2 e posterior)");
        SortedSet<String> ss2 = new TreeSet<String>( new Comparator<String> () {
            public int compare (String s1, String s2) {
                return - s1.compareTo (s2);  // note o "-"
            }
        });
        ss2.addAll (ss1);
        printSet (ss2);
        System.out.println ("Usando Java 6.0 e NavigableSet");
        for (String s : ((NavigableSet<String>) ss1).descendingSet()) {
            System.out.println (s);
        }
        System.out.println ();
    }
}
A

To usando java 6 mesmo :smiley:
Deu certo o conselho do luca :smiley:
Vlw ae pessoal!!!

Criado 29 de maio de 2007
Ultima resposta 29 de mai. de 2007
Respostas 3
Participantes 3