net.ezcontent.base
Class ListHelper

java.lang.Object
  extended bynet.ezcontent.base.ListHelper

public class ListHelper
extends Object

Clase que implementa varios metodos de conveniencia para manejo de arreglos.

NOTA IMPORTANTE: Los metodos que crean arreglos, van a devolver arreglos que no son seguros en threads. Para convertirlos a arreglos seguros en threads hay varias opciones que se pueden ver en la documentacion de las Collections de Java.

Author:
Enrique Zamudio

Constructor Summary
ListHelper()
           
 
Method Summary
static List getColumnAtIndex(List list, int index, int columns)
          Separa un arreglo de objetos en columnas, y devuelve la columna indicada (la primera tiene indice 0).
static List getPage(List list, int page, int size)
          Separa un arreglo en arreglo de determinada longitud y devuelve el solicitado.
static List getSubarray(List list, int start, int end)
          Obtiene un subarreglo de un arreglo, de la posicion inicial hasta la posicion final menos uno.
static List getWeightedArray(List list, String key)
          Obtiene un arreglo con los mismos objetos del original, pero repetidos varias veces segun el valor contenido en la llave especificada.
static List removeDuplicates(List list)
          Devuelve un arreglo similar al original pero si tiene objetos duplicados, estos ya van a estar una sola vez en el resultado.
static List separateInColumns(List list, int columns)
          Separa un arreglo de objetos en columnas y devuelve un arreglo donde cada objeto es un subarreglo que representa una columna.
static List separateInRowsOfSize(List list, int rowSize)
          Separa un arreglo en subarreglos de determinada longitud.
static void updateSet(Set set, List list)
          Actualiza un Set con los objetos de una lista.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ListHelper

public ListHelper()
Method Detail

getColumnAtIndex

public static List getColumnAtIndex(List list,
                                    int index,
                                    int columns)
Separa un arreglo de objetos en columnas, y devuelve la columna indicada (la primera tiene indice 0). Si se tiene por ejemplo un arreglo de 10 objetos y se quiere la columna 1 de un total de 3, se devuelve un arreglo con los objetos en los indices 1, 4 y 7.

Parameters:
list - La lista que hay que separar en columnas.
index - El indice de la columna deseada.
columns - El total de columnas en que hay que separar el arreglo.
Returns:
El subarreglo con los objetos de la columna especificada.

separateInColumns

public static List separateInColumns(List list,
                                     int columns)
Separa un arreglo de objetos en columnas y devuelve un arreglo donde cada objeto es un subarreglo que representa una columna.

Parameters:
list - La lista que hay que separar en columnas.
columns - El numero de columnas en el que hay que separar la lista.
Returns:
Un arreglo de subarreglos donde cada subarreglo es una columna.

separateInRowsOfSize

public static List separateInRowsOfSize(List list,
                                        int rowSize)
Separa un arreglo en subarreglos de determinada longitud.

Parameters:
list - La lista que hay que separar.
rowSize - La longitud de cada renglon.
Returns:
Un arreglo de subarreglos de la misma longitud, excepto por el ultimo que puede ser mas corto.

getSubarray

public static List getSubarray(List list,
                               int start,
                               int end)
Obtiene un subarreglo de un arreglo, de la posicion inicial hasta la posicion final menos uno.

Parameters:
list - La lista de donde hay que sacar el subarreglo.
start - La posicion inicial.
end - La posicion final (se incluye hasta el objeto en la posicion anterior).
Returns:
El subarreglo con los objetos entre los indices especificados.

getWeightedArray

public static List getWeightedArray(List list,
                                    String key)
Obtiene un arreglo con los mismos objetos del original, pero repetidos varias veces segun el valor contenido en la llave especificada. Todos los objetos deben tener una manera de obtener dicha llave, ya sea por un metodo o porque la variable sea publica.


removeDuplicates

public static List removeDuplicates(List list)
Devuelve un arreglo similar al original pero si tiene objetos duplicados, estos ya van a estar una sola vez en el resultado.

Parameters:
list - El arreglo original.
Returns:
Un arreglo con los mismos objetos que el original pero cada uno una sola vez.

getPage

public static List getPage(List list,
                           int page,
                           int size)
Separa un arreglo en arreglo de determinada longitud y devuelve el solicitado. La primera pagina es 1.

Parameters:
list - La lista que hay que separar.
page - El numero de pagina solicitada.
size - La longitud de una pagina (en objetos del arreglo).

updateSet

public static void updateSet(Set set,
                             List list)
Actualiza un Set con los objetos de una lista. Los objetos que estan en la lista y no en el Set, son agregados al Set. Los objetos que estan en el Set y no en la lista, son eliminados de la lista.