Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 18 da Aula 5 - Collections framework

Olá. Nesse exercício eu também vi que poderia ser feito dessa forma:

public class TestaDecrescente {

public static void main(String[] args) {

Set conjunto = new TreeSet<>(); for (int i = 1; i <= 1000; i++) { conjunto.add(i); }

for (Integer i : ((TreeSet) conjunto).descendingSet()) { System.out.print(i + " "); } }

}

Compilou e executou corretamente... Fazendo dessa forma está correto? Parece ser óbvio mas isso continua sendo código voltado a interface e não à implementação???

1 resposta
solução!

Boa noite ,

sim fazendo desse jeito está certo , o que acontece :

quando você utiliza a interface Set você está associando a variável conjunto a uma interface mais genérica .

Mas nesse caso é preciso fazer o casting para TreeSet .

fazendo o código desse jeito não é necessário fazer o casting e deixando o código com classes mais "precisa" :

import java.util.TreeSet;

public class TestaTreeSet {

    public static void main(String[] args) {

        TreeSet<Integer> numeros = new TreeSet<>();

        for(int i = 0; i<1000;i++){

            numeros.add(i);
        }

        for(Integer i : numeros.descendingSet()){

            System.out.println(i);
        }
    }

}

espero ter ajudado , bons estudos