Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida - Ex.: 9 - Aula 5 - Collections Framework ( ordenação de letras maiúsculas e minúsculas)

Uma ótima tarde, Senhores!

Verifiquei que existe diferença no resultado da ordenação se os caracteres estiverem em maiúsculo ou minúsculo.

Ao ler as outras dúvidas, encontrei a seguinte solução: "Collections.sort(contas, String.CASE_INSENSITIVE_ORDER );" (apresenta erro no sort).

Infelizmente não consegui implementa-la no meu código. Gostaria que me indicassem um material ou exemplo!

Segue o código:

package br.com.ads.codigos;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Principal {

    public static void main(String[] args) {

        Random aleatorio = new Random();

        List<ContaCorrente> contas = new LinkedList<ContaCorrente>();

        ContaCorrente c1 = new ContaCorrente(aleatorio.nextInt(1000), aleatorio.nextDouble() + aleatorio.nextInt(),
                "Maicon");
        contas.add(c1);

        ContaCorrente c2 = new ContaCorrente(aleatorio.nextInt(1000), aleatorio.nextDouble() + aleatorio.nextInt(),
                "Dalila");
        contas.add(c2);

        ContaCorrente c3 = new ContaCorrente(aleatorio.nextInt(1000), aleatorio.nextDouble() + aleatorio.nextInt(),
                "Laurah");
        contas.add(c3);

        Collections.sort(contas);
        for (ContaCorrente precorre : contas) {
            System.out.println(precorre);
        }

        System.out.println("\n------------------------------------------------------------------\n");

        Collections.reverse(contas);

        for (ContaCorrente percorre : contas) {
            System.out.println(percorre);
        }

        System.out.println("\n------------------------------------------------------------------\n");

        Collections.shuffle(contas);

        for (ContaCorrente percorre : contas) {
            System.out.println(percorre);
        }

    }

}
package br.com.ads.codigos;

public class ContaCorrente extends Conta implements Comparable<ContaCorrente> {

    public ContaCorrente() {
        // TODO Auto-generated constructor stub
    }

    public ContaCorrente(int numero, double saldo, String nome) {
        super(numero, saldo, nome);
    }

    @Override
    public int compareTo(ContaCorrente outraConta) {
        // return this.getNumero() - outraConta.getNumero();
        return getNome().compareTo(outraConta.getNome());
    }

}

Muito grato, se puder ser atendido.

2 respostas
solução!

Voce pode fazer assim: Ignorar usando compareToIgnoreCase.

 @Override
    public int compareTo(ContaCorrente outraConta) {
        // return this.getNumero() - outraConta.getNumero();
       // return getNome().compareTo(outraConta.getNome());
        return getNome().compareToIgnoreCase(outraConta.getNome());
    }

Funcionou perfeitamente. Muito obrigado, Mario! Sucesso!