Coleção de objetos

2 respostas
edysnipes

Boa tarde pessoal.

Estou com uma dúvida em como criar uma lista com diversos objetos diferentes.

recebo uma lista com vários objetos permissionarios.

preciso percorrer está lista e verificar se a situacao de cada permissionario é igual a 4 (morador).

Se for preciso criar uma outra lista de outro tipo para adicionar esses objetos retirando eles da lista original.

Feito isso preciso adicionar essas duas listas em uma só coleção para apresentar com displaytag.

segue código.

listaPermissionarios = PermissionarioDAO.getInstance().consultaPermissionarioBySituacao(4);
			//Verifica o endereço do pnr dos moradores
			for(Iterator<Permissionario> i = listaPermissionarios.iterator(); i.hasNext();) {
				Permissionario p = i.next();
				if(listaPermissionarios.contains(p.getPermSituacao().getIdPermSituacao() == 4)) {
					PermPNR pPNR = PermPNRDAO.getInstance().consultaPermissionarioMorador(p.getNrIdentidade());
					List<PermPNR> listaPermPNRs = null;
					listaPermPNRs.add(pPNR);
					i.remove();
				}
				//aqui preciso criar uma coleção com as duas listas de objetos diferentes
			}

como vcs podem ver to meio perdido. Gostaria de saber tambem se não poderia criar essa coleção no PermissionarioBean?

Obrigado!

2 Respostas

rugi

uma forma e criar uma List, Feito, vc precisa ocupar "casting" e operador instanceof:

import java.awt.Point;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test5 {

    public static void main(String[] args) {
        System.out.println("----------------");
        List<Object> lista = new ArrayList();
        String obj1 = "Hola";
        Integer obj2 = new Integer(4);
        Point obj3 = new Point(2, 2);
        lista.add(obj1);
        lista.add(obj2);
        lista.add(obj3);
        Iterator<Object> it = lista.iterator();
        Object tmp = null;
        while (it.hasNext()) {
            tmp = it.next();
            if (tmp instanceof String) {                
                System.out.println("String object");
            }
            if (tmp instanceof Integer) {               
                System.out.println("Integer object");
            }
            if (tmp instanceof Point) {                
                System.out.println("Point object");
            }
        }
    }
}

RuGI
Isaac Ruiz Guerra.

Jair_Rillo_Junior

Como o amigo disse funciona, porém apenas se estiver usando a versão do java 1.5 ou superior.

Caso esteja usando a versão 1.4, você deve recuperar o objeto Iterator e ai sim fazer um Casting na mão, porém o processo é o mesmo.

[]'s

Criado 17 de agosto de 2009
Ultima resposta 17 de ago. de 2009
Respostas 2
Participantes 3