Retornar dois vectores de um methodo

5 respostas
S

Olá
Nesse meu methodo gostaria que me retornasse dois vetores, existe alguma maneira de retornar ? como faria isso?

Grato

public Vector buscaTeste(HttpServletRequest request) throws Exception {

Vector vetor1 = new Vector();
    Vector vetor2 = new Vector();

    Document doc = null;
    SAXBuilder buil = new SAXBuilder();

    File file = new File("c:/testa/teste.xml");
    try {
        doc = buil.build(file);
    } catch (JDOMException e) {
        e.printStackTrace();
    }

    Element resgateXML = doc.getRootElement();

    Element eRetorno = (Element) resgateXML.getChild("Retorno");
    List<Element> listaItens = resgateXML.getChildren("RetornoRajada");
    for (Element e: listaItens) { 
         testa vet1 = new testa();
         vet1.setVenc(e.getChildText("SAI_DATA_VENCIMENTO"));
        vetor1.addElement(vet1);
    }
//==========retornar o vetor 2 =======================

Element eRetorno2 = (Element) resgateXML.getChild(Retorno);

List listaItens = resgateXML.getChildren(RetornoRajada);

for (Element e: listaItens) {

testa vet2 = new testa();

vet2.setVenc(e.getChildText(SAI_DATA_VENCIMENTO));

vetor2.addElement(vet2);

}
return vetor2;




}

5 Respostas

T

Retorne um vetor contendo 2 vetores :stuck_out_tongue:

P

Adiciona esse dois vetores dentro de um outro vetor e retorna ele

Vector vetor1 = new Vector();
Vector vetor2 = new Vector();

Vector vetor3 = new Vector();

vetor3.add(vetor1);
vetor3.add(vetor2);

return vetor3

depois é só extrair eles.

nadilsons

Acho que fica melhor fazendo assim:

Vector<Integer> vetor1 = new Vector<Integer>();
Vector<Integer> vetor2 = new Vector<Integer>();

vetor1.add(1);
vetor1.add(2);
vetor1.add(3);

vetor2.add(4);
vetor2.add(5);
vetor2.add(6);

Vector<Integer> vetor3 = new Vector<Integer>();
vetor3.addAll(vetor1);
vetor3.addAll(vetor2);
		
return vetor3;

Porque fazendo assim o vetor3 tem a mesma estrutura do vetor1 e vetor2.

Espero ter ajudado.

Nadilson

ViniGodoy

Só um detalhe, precisa ser um Vector? O Vector faz parte da API velha do Java e hoje recomenda-se substituir por ArrayList.

O código em si não muda muita coisa:
Ao invés de Vector vetor1 = new Vector();

Faça
List list1 = new ArrayList();

se for java 5, dá ainda para dizer o tipo da lista:
List<testa> list1 = new ArrayList<testa>();

Para adicionar um elemento, use o método add, ao invés de addElement.

ViniGodoy

Como os vetores são objetos, outra coisa que você pode fazer é, ao invés de cria-los, passa-los na assinatura da sua função.

public Vector buscaTeste(HttpServletRequest request, Vector vector1, Vector vector2) throws Exception {
...
}

Deixe isso documentado no seu JavaDoc e lance IllegalArgumentException para possíveis vetores inválidos (sei lá, com valores ou nulos).

Criado 26 de janeiro de 2007
Ultima resposta 26 de jan. de 2007
Respostas 5
Participantes 5