Expanda la clase de herramientas de recolección CollectiTils para su referencia. El contenido específico es el siguiente
paquete com.demo.utils; import java.lang.reflect.method; import java.util.arrayList; import java.util.collection; import java.util.hashset; import java.util.iterator; import java.util.linkedhashmap; import java.util.list; import; java.util.map; import java.util.set; import org.slf4j.logger; import org.slf4j.loggerFactory; import com.demo.bean.emloyeeEntity;/** * * <p> Métodos comunes para la expansión de la clase de la herramienta de recolección personalizada </p> * @autho dong yangyang * @@Time CollectionUtils extiende org.apache.commons.collections.collectionUtils {private static final logger logger = loggerFactory.getLogger (collectionUtils.class); Private static final int default_size = 1000; /** * * <p>Split List to multiple sets of fixed size</p> * <p>Recommended use</p> * <p>Return the smaller the size of the set, the higher the performance of this method</p> * @param baseList * @param size * @return ArrayList * @autho Dong Yangyang* @time 2017-4-10 11:30:43 am */ @SupessWarnings ("sin verificar") public static <t> List <List <T>> FastSplitList (List <T> Baselist, int size) {if (BaseList == NULL || BASELIST.Size () == 0) {return null; } if (size <= 0) {size = default_size; } int Arrsize = baLeList.size () % size == 0? baselist.size () / size: baselist.size () / size + 1; List <List <T>> resultList = new ArrayList <list <t>> (); for (int i = 0; i <arrsize; i ++) {if (arrsize - 1 == i) {resultList.Add ((list <t>) new ArrayList <ject> (baseList.sublist (i * size, baseList.size ()))); } else {resultList.Add ((List <T>) New ArrayList <S Object> (BasList.Sublist (I * tamaño, tamaño * (i + 1)))); }} return ResultList; }/** * * <p> Lista dividida en múltiples conjuntos de tamaño fijo </p> * <p> Devuelve el tamaño más grande del conjunto, mayor será el rendimiento de este método </p> * @param baselist * @param size * @return arrayList * @autho dong yangyang * @time 2017-4-10 11:30:43 am */public static <t> LIST <t> LIST <t> LIST <T> LIST (T> LIST (T/TIMIST (LIST (T/TIMIST (LIST (T/t/TInsist (TInsist (Lister (TInsist (Lister (T/t/t/t/t/t/TInsiS Baselist, int size) {if (baselist == NULL || bAlElist.size () == 0) {return null; } if (size <= 0) {size = default_size; } List <List <T>> resultList = new ArrayList <List <T> (); for (int i = 0; i <baselist.size (); ++ i) {if (i % size == 0) {list <t> result = new ArrayList <T> (); resultList.Add (resultado); } resultList.get (i / size) .Add (Baselist.get (i)); } return ResultList; }/**** <p> Establecer en establecer </p>* @param col colección de fuente* @param keyType Tipo coll, clase final <K> keyType, string final keyMethodName) {if (collectionUtils.isEmpty (coll)) {return new Hashset <K> (0); } Set final <k> set = new LinkedHashset <K> (coll.size ()); intente {for (final v value: coll) {objeto objeto; Método método = value.getClass (). GetMethod (keyMethodName); objeto = Method.Invoke (valor); @SupessWarnings ("sin control") final K Key = (K) Objeto; set.add (clave); }} capt (excepción e) {logger.error (e.getMessage (), e); tirar nueva colección CollectionUtilsexception ("Excepciones de conjunto de conversión de colección"); } Conjunto de retorno; }/** * * <p> colección para mapear </p> * <p> Por ejemplo: Lista <ElozaEntity>, hable sobre el atributo de nombre de EmployeeEntity como una clave y conviértalo en mapa </p> * @param colección de fuente de colección * @param KeyType Propiedad tipo * @Param ValueType Tipo de datos Source (Tipo de entidad de entidad) * @param KeyMethodame Property Get Method * @RetEnd LinkedHurn * Yangyang * @time 2017-4-10 11:32:01 am */ public static <k, v> map <k, v> asmap (final java.util.collection <v> coll, clase final <k> keyType, clase final <v> valueType, string keymethodName) {if (colacionUtils.isempty (coll) {return new Linkedys V> (0); } mapa final <k, v> map = new Linkedhashmap <k, v> (coll.size ()); prueba {método método = valueType.getMethod (keyMethodName); for (value v final: coll) {objeto objeto; objeto = Method.Invoke (valor); @SupessWarnings ("sin control") final K Key = (K) Objeto; map.put (clave, valor); }} capt (excepción e) {logger.error (e.getMessage (), e); tirar la nueva colección CollectionLsexception ("Excepciones del mapa de conversión de colección"); } mapa de retorno; }/** * * <p> colección para enumerar </p> * @param coll * @return arrayList * @autho dong yangyang * @time 2017-4-10 11:32:56 am */public static <v> list <v> aslist (final java.util.collection <v> coll) ArrayList <V> (0); } Lista final <V> list = new ArrayList <V> (); for (value v final: coll) {if (value! = null) {list.add (valor); }} lista de retorno; }/** * <p> Collection <String> toString </p> * @param Collection El genérico debe ser de tipo de cadena * @param Split Por ejemplo, el conector "," * @return * @autho dong yangyang * @time 2017-4-10 3:22:24 pm */public string string string coltoString (colección <cadena> colección, string split) {string string) {string builder sbuilder sbuilder sbuilder sbuilder sbuilder sbuilder sbuilder sbuilder sbuilder sbuilder; if (colección! = null) {int i = 0, size = collection.size (); for (iterator <String> iterator = Collection.iterator (); iterator.hasNext ();) {String str = iterator.next (); sb.append (str); if (++ i <size) {sb.append (división); }}} return sb.ToString (); } La clase estática CollectionUtilsexception extiende runtimeException {private static final long SerialVersionUid = 1l; public CollectionUtilsexception (String s) {super (s); } public CollectionUtilsexception (String S, Throwable E) {Super (S, E); } public CollectionUtilsexception (lanzable e) {super (e); }} public static void main (string [] args) {list <String> baLeList = new ArrayList <String> (1000000); para (int i = 0; i <1000000; i ++) {Baselist.Add ("Data:"+"I"); } Long CurrentTimemillis1 = System.CurrentTimemillis (); List <List <String>> SplitList = SplitList (Baselist, 1000); Long CurrentTimemillis2 = System.CurrentTimemillis (); System.out.println (SplitList.Size ()); System.out.println ("El tiempo de finalización de corte es:"+String.ValueOf (CurrentTimemillis2-CurrentTimemillis1)+"MS"); Long CurrentTimemillis3 = System.CurrentTimemillis (); List <List <String>> newList = FastSplitList (Baselist, 1000); Long CurrentTimemillis4 = System.CurrentTimemillis (); System.out.println (newList.size ()); System.out.println ("El tiempo de finalización de corte rápido es:"+String.ValueOf (CurrentTimemillis4-CurrentTimemillis3)+"MS"); Lista <ElozaEntity> EmpleeElist = New ArrayList <EmployeeEntity> (); para (int i = 1; i <11; i ++) {EmployeeEntity entity = new EmployeeEntity (); entity.setName ("name"+string.valueOf (i)); EmpleeEelist.Add (entidad); } System.out.println (empleadoElist.size ()); Set <String> set = collectionUtils.asset (empleadoElist, string.class, "getName"); for (name de cadena: set) {system.out.println (nombre); } Map <String, EmployeeEntity> map = collectionUtils.asMAP (EmpleeElist, String.Class, EmployeeEntity.class, "GetName"); Establecer <String> keySet = map.KeySet (); for (tecla de cadena: KeySet) {System.out.println (Key); System.out.println (map.get (key)); } List <EmployeeEntity> list = collectionUtils.aslist (map.values ()); para (EmployeeSeTity EmployeeEntity: List) {System.out.println (EmployeeEntity); }}}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.