Boa tarde, estou querendo saber como faço para colocar em ordem alfabetica uma Arraylist.
os codigos seguem nesse link:
http://www.guj.com.br/java/284928-arraylist–classe-abstrata–heranca-duvida-cruel#1505769
e estou fazendo esse metodo para colocar em ordem alfabetica:
[code]public static ArrayList imprimiTodosForne() throws Exception{
ArrayList listaFornecedorOrdemAlfa = new ArrayList<>();
for(Pessoa pessoaCad : listaPessoas){
if(pessoaCad instanceof Fornecedor){
Fornecedor fornecedorCad = (Fornecedor) pessoaCad;
listaFornecedorOrdemAlfa.add(fornecedorCad);
}
}
if(listaFornecedorOrdemAlfa.isEmpty()){
throw new Exception(“Vendedor não existe.”);
}else{
return listaFornecedorOrdemAlfa;
}
}[/code]
Como uso o Collection.sort(lista)?
[code]public Class Pessoa implements Comparator{
public int compare(Pessoa p1, Pessoa p2) {
return this.getName.compareTo(p2.getName());
}
}
Collections.sort(listaFornecedorOrdemAlfa, new Comparator() {
public int compare(Pessoa pes1, Pessoa pes2) {
return pos1.getName().compareTo(pes2.getName());
}
});
[/code]
Essa é a ideia mano… Acho que ai já da uma luz. Qualquer coisa levanta as maões ai.
Boa tarde,
para ordena usando Collection.sort(lista) sua classe pessoa tem que implementar a interface Comparable, implementar o metodo compareTo
pra saber mais http://www.caelum.com.br/download/caelum-java-objetos-fj11.pdf e consulte o capitulo “Collections framework”
Boa Tarde…
[code]public class ContaCorrente extends Conta
implements Comparable {
// … todo o código anterior fica aqui
public int compareTo(ContaCorrente outra) {
if (this.saldo < outra.saldo) {
return -1;
}
if (this.saldo > outra.saldo) {
return 1;
}
return 0;
}
}[/code]
no exemplo acima ele comparou com o saldo…mas poder ser qualquer coisa…
assim a classe se torna Comparavel…
falow
[code]package dados;
import java.io.Serializable;
import java.util.Collection;
import java.util.GregorianCalendar;
public abstract class Pessoa implements Comparable, Serializable{
public static final int CLIENTE = 1;
public static final int VENDEDOR = 2;
public static final int FORNECEDOR = 3;
private int codigo;
private String nome;
private String telefone;
private String email;
private GregorianCalendar dataCad;
public Pessoa(int codigo, String nome, String telefone, String email,
GregorianCalendar dataCad) {
super();
this.codigo = codigo;
this.nome = nome;
this.telefone = telefone;
this.email = email;
this.dataCad = dataCad;
}
public abstract int getTipo();
public int compareTO(Pessoa o){
return nome.compareTo(o.nome);
}
@Override
public String toString() {
return "Codigo: " + codigo + "\n" +
"Nome: " + nome + "\n" +
"Telefone: " + telefone + "\n" +
"E-mail: " + email + "\n" +
"Data de Cadastro: " + dataCad;
}
}
[/code]
Certo, o metodo ta ali na classe pessoa.
mas eu estou querendo ordena um lista fornecedor que e filha dessa classe:
[code]public static ArrayList imprimiTodosForne() throws Exception{
ArrayList listaFornecedorOrdemAlfa = new ArrayList<>();
for(Pessoa pessoaCad : listaPessoas){
if(pessoaCad instanceof Fornecedor){
Fornecedor fornecedorCad = (Fornecedor) pessoaCad;
listaFornecedorOrdemAlfa.add(fornecedorCad); //<-- Onde a lista a ser ordenada recebe as “Pessoas” que São Fornecedores
}
}
if(listaFornecedorOrdemAlfa.isEmpty()){
throw new Exception(“Vendedor não existe.”);
}else{
return listaFornecedorOrdemAlfa;
}
}[/code]
onde iria inserir o Collections.sort, e quando digito Collections. e do tecla de atalho, nao aparece nada! =/
implementa o Comparable na classe Fornecedor uai… Only this.