Duvida Vector

4 respostas
felixcomputer

Pessoal, eu to com uma duvida que pode ser meio boba, mas é a seguinte:

Eu tenho uma classe qualquer chamada Funcionario, e nessa classe tenho dois metodos getNome(), getFuncao(). Em uma outra classe eu quero fazer preencher um Vector de Funcionario, mais ou menos assim:

public class Funcionario 
{
	public String getNome()
	{
            return "qualquerCoisa";
	}
	
	public String getFuncao()
	{
	    return "qualquerOutraCoisa";
	}

	public String toString()
	{
	    return "aquiEstaOProblema";
	}
}


public class FuncionarioTest
{
	public FuncionarioTest()
	{

		List lista = new Vector();
		Funcionario funcionario = new Funcionario();
	

		for (int i=0;i<=10;i++)
			lista.add(funcionario);

		for (int j=0;j<=lista.size();j++)
			lista.get(j);
	}
}

Contudo se eu fizer isso ele naum vai me retornar o funcionario para que eu faça funcionario.getNome(); ele vai me retornar apenas o que estiver definido no método toString() da classe Funcionario, se eu fizer isso assim, ele vai me retorna isso: “aquiEstaOProblema” e não é isso que eu quero. O q eu gostaria era de poder fazer isso:

...
for (int j=0;j<=lista.size();j++)
{
	lista.getNome();
	lista.getFuncao();
}
...

Entretanto isto é um erro, ele não vai compilar, pq não posso trabalhar dessa forma.

Outra solução:

Uma outra solução seria eu trabalhar um array besta msm. Ele me permitiria trabalhar dessa forma:

public class FuncionarioTest
{
	public FuncionarioTest()
	{

		Funcionario lista[] = new Funcionario[10];
		Funcionario funcionario = new Funcionario();
	

		for (int i=0;i<10;i++)
			lista[i]=funcionario;

		for (int j=0;j<10;j++)
		{
			lista[j].getNome();
			lista[j].getFuncao();
		}
	}
}

Só que eu naum posso trabalhar dessa forma, pq naum posso determinar o tamanho do meu vetor e principalmente pq eu esse ae não é o meu codigo em que surgiu o problema, é apenas uma síntese do problema que estou tendo. Estou trabalhando com muitas classes diferentes, então realmente preciso trabalhar com o tipo Vector, ArrayList, qualquer um desses ae. Mas em nenhum que eu tentei, tive sucesso, apenas naquela forma de array. Isso pode ser uma duvida boba como ja havia falado, mas naum encontrei solução. Espero que alguém possa me ajudar com isso, obrigado,
Samuel

4 Respostas

R

Olá felixcomputer,

Vc já tentou usar java.util.Collection? :wink:
Dá uma pesquisada aqui mesmo que tem, e vc retorna os valores usando o java.util.Iterator.

eduveks

Correção:

for (int j=0;j<lista.size();j++) {
	Funcionario funcionario = (Funcionario)lista.get(j);
	funcionario.getNome();
	funcionario.getFuncao();
}

Que tal assim? :wink:

felixcomputer

Valeu eduveks, duvida resolvida, pelo menos, aprendi a usar o método toString(), uhauha, obrigado,
felixcomputer

eduveks

:wink: força

Criado 21 de agosto de 2006
Ultima resposta 21 de ago. de 2006
Respostas 4
Participantes 3