Expanda a coleta de coleta de coleta de coleta para sua referência. O conteúdo específico é o seguinte
pacote com.demo.utils; importar java.lang.reflect.method; importar java.util.ArrayList; importar java.util.collection; importar java.util.hashSet; importar java.util.iterator; import java.util.linkedHashMap; import.ilmaiT.IliT.IliT; java.util.map; importar java.util.set; importar org.slf4j.logger; importar org.slf4j.loggerFactory; importar com.demo.bean.employeeentity;/** ** * * <P> Métodos comuns para a classe de coleta de personalização Expansion Classe collectionUtils estende org.apache.commons.collections.collectionUtils {private estático final logger = LoggerFactory.getLogger (collectilutils.class); private estático final int default_size = 1000; /** * * <p> Lista de divisões em vários conjuntos de tamanho fixo </p> * <p> Uso recomendado </p> * <p> Retorne quanto menor o tamanho do conjunto, maior o desempenho desse método </p> * @param Baselist * @param size * @return ArrayList * @autho Dong yangyng *time * @param 2017-4-17-130 @Param * @return ArrayList * @autho dong yangyng *time @Suppresswarnings ("desmarcado") 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 = Baselist.size () % size == 0? Baselist.size () / Tamanho: Baselist.size () / Size + 1; Lista <List <T>> resultList = new ArrayList <List <T>> (); para (int i = 0; i <arrSize; i ++) {if (arrSize - 1 == i) {resultList.add ((list <t>) new ArrayList <ject> (Baselist.sublist (tamanho i *, baselist.size ())); } else {resultList.add ((list <T>) new ArrayList <ject> (Baselist.sublist (i * tamanho, tamanho * (i + 1)))); }} retornar resultlist; }/** * * <p> Lista de divisões em vários conjuntos de tamanho fixo </p> * <p> Retorne quanto maior o tamanho do conjunto, maior o desempenho desse método </p> * @param Baselist * @param size * @return 11:30:43 AM * @Autho Dong Yangyang * Time 2017-4-4-10 11:30:43 AM * @AUTO splitlist (list <T> Baselist, int size) {if (Baselist == null || Baselist.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> resultado = new ArrayList <T> (); resultadolist.add (resultado); } resultadoList.get (i / size) .add (Baselist.get (i)); } retornar resultlist; }/**** <p> Definir </p>* @param collection colecionamento de origem* @param keytype Tipo* @param keymethodname atributo Método Get* @return LinkedHashSet* @Autho Dong Yangyang* @time 2017-4-10 11:31:50 Am*/public STATY <K, V> Sett> Coll, classe final <k> keytype, string final keymethodname) {if (collectionUtils.isEmpty (coll)) {return New Hashset <K> (0); } set final <k> set = new LinkedHashSet <K> (col.size ()); tente {for (final V valor: coll) {objeto objeto; Método método = value.getclass (). GetMethod (keymethodname); object = Method.inVoke (valor); @Suppresswarnings ("desmarcado") Key K final = (k) objeto; set.add (chave); }} catch (Exceção e) {Logger.error (e.getMessage (), e); lançar novas coleções de coleção ("Conjunto de conversão de coleções Exceções"); } retorno conjunto; }/** * * <p> Coleção para mapear </p> * <p> Por exemplo: List <Funcionário>, fale sobre o atributo de nome da funcionária como uma chave e converta -a em mapa </p> * @param collection collection * @param keytype type * @param valueType Type (EntenTyT) * @param KeymethnETETNETNEMEnTenTenTeat) Yangyang * @Time 2017-4-10 11:32:01 AM */ public static <k, v> map <k, v> asmap (final java.util.collection <V> coll, classe final <k> keyEdPe, classe final <V> valuetype, string final keymethName) (senTeDUtils.ismemp, V> (0); } mapa final <k, v> map = new LinkedHashMap <k, v> (col.size ()); tente {método método = valuetype.getMethod (keymethodName); para (Valor V final V: coll) {objeto objeto; object = Method.inVoke (valor); @Suppresswarnings ("desmarcado") Key K final = (k) objeto; map.put (chave, valor); }} catch (Exceção e) {Logger.error (e.getMessage (), e); lançar novas coleções de coleção ("Exceções de mapa de conversão de coleções"); } mapa de retorno; }/** * * <p> Coleção para listar </p> * @param coll * @return ArrayList * @autho dong yangyang * @time 2017-4-10 11:32:56 AM */public static <t> list <v> aslist (final java.util.collection <v> {if (se Arraylist <V> (0); } Lista final <V> LIST = new ArrayList <V> (); para (Valor V final V: coll) {if (value! = null) {list.add (value); }} Lista de retorno; } /** * <p> Collection<String>toString</p> * @param collection The generic must be of String type* @param split For example, the connector "," * @return * @autho Dong Yangyang* @time 2017-4-10 3:22:24 pm */ public static String colToString(Collection<String> collection, String split) { StringBuilder sb = new Stringbuilder (); if (coleção! = null) {int i = 0, size = collection.size (); for (iterator <string> iterator = collection.iterator (); iterator.hasnext ();) {string str = iterator.next (); sb.append (str); if (++ i <tamanho) {sb.append (split); }}} return sb.toString (); } classe estática colecionATilSexception estende a RUNTimeException {private estático final serialversionuid = 1L; public collectionUtilsexception (Strings) {super (S); } public collectionUtilSception (String S, Throwable e) {super (s, e); } public collectionUtilSception (Throwable e) {super (e); }} public static void main (string [] args) {list <string> Baselist = new ArrayList <String> (1000000); for (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 ("O tempo de conclusão de corte é:"+string.valueof (currenttimemillis2-currenttimemillis1)+"ms"); long CurrentTimemillis3 = System.CurrentTimemillis (); Lista <List <String>> newList = fastsplitlist (Baselist, 1000); long CurrentTimemillis4 = System.currenttimemillis (); System.out.println (newList.size ()); System.out.println ("O tempo de conclusão de corte rápido é:"+string.valueof (currenttimemillis4-currenttimemillis3)+"ms"); Lista <PomestionEntity> Employeelist = new ArrayList <Pleomentity> (); for (int i = 1; i <11; i ++) {empregado entidade = new FylemerEntity (); entity.setName ("name"+string.valueof (i)); Employeelist.add (entidade); } System.out.println (Employeelist.size ()); Set <string> set = collectionUtils.ASSET (Employeelist, String.class, "getName"); para (Nome da String: Set) {System.out.println (nome); } Mapa <string, funcionárioEntity> map = collectionUtils.asmap (Employeelist, string.class, funcionário.class, "getName"); Set <string> keySet = map.keyset (); para (String Key: Keyset) {System.out.println (key); System.out.println (map.get (key)); } LIST <Funcionário> list = collectionUtils.asList (map.values ()); para (Funcionário Funcionário: List) {System.out.println (Funcionário); }}}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.