Exercício Ordenação Numeros - Erro na Sintaxe(Collections.reverseOrder)
Boa tarde, Camila !
Estou escrevendo o código para a resolução do exercício mas o IntelliJ informa que há uma redundancia no código que não estou sabendo como resolver. procurei nas aulas mas não encontrei a forma correta de se onrdenar de forma inversa. Segue o print do erro e o trecho do código:
OBS: Eu implementei o Comparable na Classe Pessoa
package main.java.list.Ordenacao;
import main.java.list.Pesquisa.Numeros;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static java.util.Collections.*;
public class OrdenacaoNumeros {
private List<NumerosInteiros> listaNumeros;
public OrdenacaoNumeros() {
this.listaNumeros = new ArrayList<>();
}
public void adicionarNumero(int numero) {
listaNumeros.add(new NumerosInteiros(numero));
}
public List<NumerosInteiros> ordenarAscendente() {
List<NumerosInteiros> listaAscendente = new ArrayList<>(listaNumeros);
Collections.sort(listaAscendente);
return listaAscendente;
}
public List<NumerosInteiros> ordenarDescendente() {
List<NumerosInteiros> listaDescendente = new ArrayList<>(listaNumeros);
Collections.reverseOrder(listaDescendente);
return listaDescendente;
}
}
Te agradeço muito a orientação, Stephanie
Camila, fiz minhas próprias pesquisas e consegui. Vou compartilhar o resultado para caso mais alguém tenha uma dúvida parecida:
O método Collections.reverseOrder() retorna um comparador que impõe a ordem inversa de um comparador fornecido. Se nenhum comparador for fornecido, ele retorna um comparador que inverte a ordem natural dos elementos. No entanto, ele não ordena uma lista.
Se você deseja ordenar a lista em ordem decrescente, você deve usar o método Collections.sort() com o comparador fornecido por Collections.reverseOrder(). Aqui está como você pode fazer isso:
public List<NumerosInteiros> ordenarDescendente() {
List<NumerosInteiros> listaDescendente = new ArrayList<>(listaNumeros);
Collections.sort(listaDescendente, Collections.reverseOrder());
return listaDescendente;
}
oi @SteCarvalho87, tudo certinho?? Parabéns pelos estudos!!
Então, eu resolvi esses exercícios aqui: https://github.com/cami-la/collections-java-api-2023/blob/master/src/main/java/list/Ordenacao/OrdenacaoNumeros.java
public List<Integer> ordenarDescendente() {
List<Integer> numerosAscendente = new ArrayList<>(this.numerosList);
if (!numerosList.isEmpty()) {
numerosAscendente.sort(Collections.reverseOrder());
return numerosAscendente;
} else {
throw new RuntimeException("A lista está vazia!");
}
}
No repositório tem algumas sugestões de soluções. Mas continue assim, você está se saindo muito bem!
Bons estudos para nós!