Dúvida em Comparação de String

3 respostas
T

Boa tarde a todos.

Bom minha dúvidas é a seguinte. Gostaria de saber como eu faço para ordenar essas contas pelo nome.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class TestaOrdenacao {
	public static void main(String[] args) {
		
		List<ContaPoupanca> contas = new ArrayList<ContaPoupanca>();
		
		ContaPoupanca c1 = new ContaPoupanca();
		c1.setNome("Thiago");
		c1.deposita(450);
		contas.add(c1);
		
		ContaPoupanca c2 = new ContaPoupanca();
		c1.setNome("Abdala");
		c2.deposita(250);
		contas.add(c2);
		
		ContaPoupanca c3 = new ContaPoupanca();
		c1.setNome("Carol");
		c3.deposita(350);
		contas.add(c3);
		
		Collections.sort(contas);
		
		for(int i= 0; i<contas.size(); i++){
			
			System.out.println("Saldo " +contas.get(i).getSaldo());
		}
	}
}

Creio que a comparação se forma por essa classe, ordenar pelo Saldo eu ja consegui mas por Nome não tenho a minima idéia.

public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca>{

	@Override
	public int compareTo(ContaPoupanca arg0) {
		// TODO Auto-generated method stub
		return 0;
	}

	
}

3 Respostas

nbluis

Exite um método Collections.sort() que recebe a lista e o comparador.
Dai basta implementar o comparador.

A string já tem um método de comparacao.
string.compareTo(string2);

nbluis

Fiz um exemplinho.

public class MyObject {
    private String name;
    public MyObject(String name) {
	this.name = name;
    }
    public String getName() {
	return this.name;
    }
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
	List<MyObject> list = new ArrayList<MyObject>();
	list.add(new MyObject("dd"));
	list.add(new MyObject("aa"));
	list.add(new MyObject("bb"));
	list.add(new MyObject("cc"));

	Collections.sort(list, new Comparator<MyObject>() {

	    public int compare(MyObject o1, MyObject o2) {
		if (o1 != null && o2 != null && o1.getName() != null && o2.getName() != null) {
		    return o1.getName().compareTo(o2.getName());
		}
		return 0;
	    }
	});

        //imprime ordenado
	for (MyObject o : list) {
	    System.out.println(o.getName());
	}

    }
}

Até…

T

Puts… vlw mesmo !!! Associei ao meu ex e consegui !!!

Vlw abraços

Criado 14 de fevereiro de 2008
Ultima resposta 14 de fev. de 2008
Respostas 3
Participantes 2