ArrayList para Array[]

5 respostas
X

Preciso passar para o meu Array[] o conteúdo do ArrayList e depois ordena-lo,aparentemente está tudo ok,nada de erros até executar o case3 que fecha o programa,aqui vai o que estou tentando fazer:

public class Fila {

	public ArrayList<Cadastrar> fil = new ArrayList<Cadastrar>();

	public Cadastrar vetor[] = new Cadastrar[fil.size()];

	public void ordenar() {

		 
for(int i = 0; i<fil.size();i++){
			this.vetor[i] = fil.get(i);
}
		Arrays.sort(vetor);

	}

	public void mostrar() {

		for (int i = 0; i < fil.size(); i++) {
			JOptionPane.showMessageDialog(null, vetor[i].getNome());

		}
	}
Executável :
case 3:
				client.ordenar();

				client.mostrar();
				break;

5 Respostas

V

me explique melhor o seu problema,

qual o erro que está ocorrendo ?
o que você quer fazer ?
você quer gerar um array[] a partir da lista ?
você quer gerar uma lista a partir de um array ?

explica melhor que eu me perdi

B

Um problema que detectei é que vetor é instanciado já no começo de Fila, com um tamanho que o ArrayList tem nesse momento (zero itens).

Segundo que List já tem um método toArray, não precisa fazer o seu próprio.

E terceiro, não há necessidade de ter um ArrayList e um array ao mesmo tempo. Em Collections também há o método sort.

X

Victor Gerin:
me explique melhor o seu problema,

qual o erro que está ocorrendo ?
o que você quer fazer ?
você quer gerar um array[] a partir da lista ?
você quer gerar uma lista a partir de um array ?

explica melhor que eu me perdi

O erro é que quando executo o case 3 que contém esses métodos o programa fecha.
Quero passar o conteúdo da lista para o array para ordenar em ordem alfabética os nomes que estarão na lista.
Quero passar a minha lista para o array[]

Bruno Laturner:
Um problema que detectei é que vetor é instanciado já no começo de Fila, com um tamanho que o ArrayList tem nesse momento (zero itens).

Segundo que List já tem um método toArray, não precisa fazer o seu próprio.

E terceiro, não há necessidade de ter um ArrayList e um array ao mesmo tempo. Em Collections também há o método sort.

Eu não consegui usar o toArray tmb não sei porque,na vdd o meu exercício me obriga a ter os dois,pois preciso mostrar uma lista de ordem de chegada e ao mesmo tempo uma lista com o nome das pessoas da ordem de chegada em ordem alfabética.

V

se o seu objetivo é converter uma lista para array[] use o metodo List.toArray() ele vai fazer isso

carlosmoreira

Seu problema é o seguinte.

Arrays.sort(vetor) ordena a coleção pela ordem natural, String em ordem alfabética, números em ordem numérica.

Sua coleção é de Cadastrar, qual a ordem natural disso? não existe, vc tem que classificar sua ordenação, como?

algo do tipo Arrays.sort(vetor, comoMinhaClasseSeraOrdenada)

Vc terá que implementar o Comparator na sua classe Cadastrar e sobreescrever o método que agora não lembro o nome para dizer a Arrays.sort(vetor) como ordenar sua classe.

Mãos a obra, pesquise sobre que vc vai descobrir como fazer, não vou entrar no detalhe se sua lógica está certa ou errada. =/

Criado 15 de julho de 2013
Ultima resposta 25 de jul. de 2013
Respostas 5
Participantes 4