Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con Collection

Estas en el tema de Ayuda con Collection en el foro de Java en Foros del Web. Tengo una Collection de objetos obtenida de un EJB: Código: Collection<TblObjetos> listaObjetos = tblObjetosFacade.buscarCondicion(); Quiero desplazarme dentro de la Collection hacia adelante y hacia atrás, ...
  #1 (permalink)  
Antiguo 09/07/2009, 02:16
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Mensaje Ayuda con Collection

Tengo una Collection de objetos obtenida de un EJB:
Código:
Collection<TblObjetos> listaObjetos = tblObjetosFacade.buscarCondicion();

Quiero desplazarme dentro de la Collection hacia adelante y hacia atrás, pero no encuentro como. El Iterator solo permite ir hacia adelante.

La solución que se me ha ocurrido es obtener la siguiente:
Código:
int posicionDeseada = sesion.getAttribute("posicion");

//  Obtener el numero de elementos de la Collection
int cont = listaObjetos.size();
Iterator iter = listaObjetos.iterator();
// controla la posición
int posicionActual=0;
if ((posicionDeseada<0)|| (posicionDeseada>=cont))
{// Gestionar Error }
else
{
     for (int  i; i<posicionDeseada;i++)
           iter.next();
    // Obtengo los datos...
}
Se os ocurre, o conoceis alguna otra forma de hacerlo, sin tener que recorrer la collection cada vez??

Gracias

Última edición por Aquinoes; 09/07/2009 a las 06:28
  #2 (permalink)  
Antiguo 09/07/2009, 10:13
 
Fecha de Ingreso: junio-2009
Ubicación: Mexico
Mensajes: 11
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Ayuda con Collection

mmm a mi se me ocurre que guardes los elementos de tu coleccion en una lista ordenada y los obtengas uno por uno del final al principio: lo cual, seria mas o menos asi:
Código:
Collection<TblObjetos> listaObjetos = tblObjetosFacade.buscarCondicion();
LinkedList<TblObjetos> lista = new LinkedList<TblObjetos>();

Iterator iter = listaObjetos.iterator();
while (iter.hasNext())
{
TblObjetos tbo =(TblObjetos)iter.next();
lista.addLast(tbo);
}
for(int i = lista.size()-1; i>=0; i--)
    {
	System.out.println("Elemento "+i+": "+lista.get(i));	
    }
No se si te funcione asi
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:44.