Vector - como buscar um determ. elemento no Vector

14 respostas
R

Galera,

Como faço para buscar um determinado elemento dentro de um Vector

Obrigado

14 Respostas

TedLoprao

Depende, se vc tiver o indice do que vc quer use get(int index), agora se vc tem apenas uma propriedade do objeto que se encontra dentro do vector… Bom, ai só percorrendo o mesmo!!! Ex.: seu vector possui um monte de objetos Pessoa e vc quer a Pessoa que possui o nome == TedLoprao…

E Lembre-se a API é nossa amiga, :lol: !!!

R

“TedLoprao”:
Depende, se vc tiver o indice do que vc quer use get(int index), agora se vc tem apenas uma propriedade do objeto que se encontra dentro do vector… Bom, ai só percorrendo o mesmo!!! Ex.: seu vector possui um monte de objetos Pessoa e vc quer a Pessoa que possui o nome == TedLoprao…

E Lembre-se a API é nossa amiga, :lol: !!!

EX:
Eu tenho 3 objetos dentro do meu Vector e em cada objeto eu tenho que buscar 3 atributos e armazenas cada um em uma String
Ou seja, tenho que percorrer meu vetor, porém como faço para pegar esses 3 atributos

EX: for(int i=0; i < v.size(); i++){

V

Ué… você percorre ele com o for, certo?

Então dentro do for você compara cada atributo do obj que você recuperou do vector

for(int i = 0; i < vector.size(); i++) { Foo foo = (Foo) vector.get(i); int atributo1 = foo.getAtributo1(); int atributo2 = foo.getAtributo2(); int atributo3 = foo.getAtributo3(); }

[]´s

TedLoprao

Pode usar o for como vc fez:

for(int i=0; i < v.size(); i++){
   Pessoa p = (Pessoa) v.get(i);
   p.getAtributo1();
   p.getAtributo2();
   p.getAtributo3();
}

Ou use um Iterator:

Iterator it = v.iterator();
while (it.hasNext()) {
   Pessoa p = (Pessoa) it.next();
   p.getAtributo1();
   p.getAtributo2();
   p.getAtributo3();
}

É isso???

R

“TedLoprao”:
Pode usar o for como vc fez:

for(int i=0; i < v.size(); i++){
   Pessoa p = (Pessoa) v.get(i);
   p.getAtributo1();
   p.getAtributo2();
   p.getAtributo3();
}

Ou use um Iterator:

Iterator it = v.iterator();
while (it.hasNext()) {
   Pessoa p = (Pessoa) it.next();
   p.getAtributo1();
   p.getAtributo2();
   p.getAtributo3();
}

É isso???

OK

Mas dá o seguinte erro
java.lang.ClassCastException
at interfacefep.DadosFEP.main(DadosFEP.java:269)

C
Pessoa p = (Pessoa) v.get(i);

Vc tem certeza que dentro desse vetor só tem instâncias de Pessoa ?

TedLoprao

Isso significa q o q tu tem dentro do vector não é a classe para qual vc quer converter!!!

Vc pode fazer um debug e verificar que classe vc tem dentro do Vector, ou tentar imprimir o nome da mesma…

Fallow

R

“TedLoprao”:
Isso significa q o q tu tem dentro do vector não é a classe para qual vc quer converter!!!

Vc pode fazer um debug e verificar que classe vc tem dentro do Vector, ou tentar imprimir o nome da mesma…

Fallow

Dado o código abaixo, pq quando mando exibir o conteudo do meu Vetor, os elementos não estao na ordem correta conf. o banco
Percebi que ele ordena os atributos em suas posições
O vector faz isso mesmo???
Como faço para ele vir conf. o banco

PreparedStatement ps = bd.getConnection().prepareStatement(_QUERY);

ResultSet rs = ps.executeQuery();

while(rs.next()){

linha = new Vector();

linha.addElement(rs.getString(1));

linha.addElement(rs.getString(2));

linha.addElement(rs.getString(3));

linha.addElement(rs.getString(4));

linha.addElement(rs.getString(5));

linha.addElement(rs.getString(6));

linha.addElement(rs.getString(7));

linha.addElement(rs.getString(8));

v.addElement(new PointCFH(linha.elementAt(0).toString(),linha.elementAt(1).toString(), linha.elementAt(2).toString(),linha.elementAt(3).toString(),linha.elementAt(4).toString(), linha.elementAt(5).toString(),linha.elementAt(6).toString(),linha.elementAt(7).toString()));
TedLoprao

Hmmm, agora não entendi??? Como assim conforme o banco???
E pq vc joga o valor que vem do banco primeiro em um vector linha???

R

“TedLoprao”:
Hmmm, agora não entendi??? Como assim conforme o banco???
E pq vc joga o valor que vem do banco primeiro em um vector linha???

Olha só eu preciso pegar o Resultado de um Query e armazenar em um Objeto,
depois terei que pegar alguns atributos desse objeto, fazer alguns calculos e depois gravar em outra Tabela do Banco

TedLoprao

E seguindo o teu código, pq vc não faz o seguinte:

// supomos que a query seja select nome, id from Pessoas
PreparedStatement ps = bd.getConnection().prepareStatement(_QUERY); 
ResultSet rs = ps.executeQuery();
List pessoas = new ArrayList();
while(rs.next()){
    Pessoa p = new Pessoa();
    p.setNome(rs.getString(1));
    p.setId(rs.getInt(2));
    pessoas.add(p);
}

Agora vc tem um List com todas as pessoas… Vc pode fazer o que quiser com as classes e depois persistir como achar melhor…

Ajudou???

R

“TedLoprao”:
E seguindo o teu código, pq vc não faz o seguinte:

// supomos que a query seja select nome, id from Pessoas
PreparedStatement ps = bd.getConnection().prepareStatement(_QUERY); 
ResultSet rs = ps.executeQuery();
List pessoas = new ArrayList();
while(rs.next()){
    Pessoa p = new Pessoa();
    p.setNome(rs.getString(1));
    p.setId(rs.getInt(2));
    pessoas.add(p);
}

Agora vc tem um List com todas as pessoas… Vc pode fazer o que quiser com as classes e depois persistir como achar melhor…

Ajudou???


Ted, OK!!!
Consegui,
Aproveitando a oportunidade

Estou fazendo alguns testes, e gosrtaria de saber:
Existe um momento eu codigo que eu tenho que buscar dados no Banco e depois Grava-los em uma outra tabela
Qto ao Classe PrepareStatement, eu tenho que passar um query para fazer um select e depois uma query para fazer o insert,
Eu tenho que criar dois objetos PrepareStatement para cada query, ou posso usar a mesma ref.???

R

“TedLoprao”:
E seguindo o teu código, pq vc não faz o seguinte:

// supomos que a query seja select nome, id from Pessoas
PreparedStatement ps = bd.getConnection().prepareStatement(_QUERY); 
ResultSet rs = ps.executeQuery();
List pessoas = new ArrayList();
while(rs.next()){
    Pessoa p = new Pessoa();
    p.setNome(rs.getString(1));
    p.setId(rs.getInt(2));
    pessoas.add(p);
}

Agora vc tem um List com todas as pessoas… Vc pode fazer o que quiser com as classes e depois persistir como achar melhor…

Ajudou???


Ted, OK!!!
Consegui,
Aproveitando a oportunidade

Estou fazendo alguns testes, e gosrtaria de saber:
Existe um momento eu codigo que eu tenho que buscar dados no Banco e depois Grava-los em uma outra tabela
Qto ao Classe PrepareStatement, eu tenho que passar um query para fazer um select e depois uma query para fazer o insert,
Eu tenho que criar dois objetos PrepareStatement para cada query, ou posso usar a mesma ref.???

TedLoprao

Vc terá que chamar o bd.getConnection().prepareStatement(_INSERT), por exemplo!!!

Criado 29 de julho de 2004
Ultima resposta 29 de jul. de 2004
Respostas 14
Participantes 4