قم بتوسيع مجموعة أدوات المجموعة CollectionUtils للرجوع إليها. المحتوى المحدد كما يلي
package 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.tillist ؛ java.util.map ؛ import java.util.set ؛ استيراد org.slf4j.logger ؛ استيراد org.slf4j.loggerfactory ؛ استيراد com.demo.bean.employeEntity ؛/** * * <p> الطرق المشتركة لتوسيع فئة أدوات المجموعة المخصصة </p> * @autho dong yangyang * */CollectionUtils العامة يمتد org.apache.commons.collections.collectionUtils {private static final logger = loggerfactory.getLogger (collectionUtils.class) ؛ خاص ثابت نهائي int default_size = 1000 ؛ /** * * <p> تقسيم القائمة إلى مجموعات متعددة من الحجم الثابت </p> * <p> الاستخدام الموصى به </p> * <p> إرجاع حجم المجموعة الأصغر ، كلما ارتفع أداء هذه الطريقة </p> * param baselist * param * @return arrhelist * autho dong yangyang * @time 2017-4-10 suppressWarnings ("Unchected") ثابت عام <T> القائمة <TRILD <T >> FASTSPLITLIST (قائمة <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 () / size: baselist.size () / size + 1 ؛ قائمة <list <T >> resultlist = new ArrayList <list <T >> () ؛ لـ (int i = 0 ؛ i <arrsize ؛ i ++) {if (arrsize - 1 == i) {resultlist.add ((list <t>) new ArrayList <Object> (baselist.sublist (i * size ، baselist.size ()))) ؛ } آخر {resultlist.add ((قائمة <T>) ArrayList جديد <Object> (baselist.sublist (i * size * (i + 1))))) ؛ }} return resultlist ؛ }/** * * <p> تقسيم القائمة إلى مجموعات متعددة من الحجم الثابت </p> * <p> إرجاع أكبر حجم المجموعة ، وكلما زاد أداء هذه الطريقة </p> * param baselist * size size * @return arraylist * @القائمة <t> قائمة <T> القائمة <t> قائمة <T> القائمة <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 >> () ؛ لـ (int i = 0 ؛ i <baselist.size () ؛ ++ i) {if (i ٪ size == 0) {list <t> result = new ArrayList <T> () ؛ resultlist.add (النتيجة) ؛ } resultlist.get (i / size) .add (baselist.get (i)) ؛ } قائمة النتائج ؛ }/***** <p> تعيين لضبط </p>* param col collection* param keytype نوع السمة* param keymethodname سمة الحصول على طريقة* @return linkedhashset* @autho dong yangyang* @time 2017-4-10 11:31:50 am*/public static <k ، Coll ، الفئة النهائية <K> keytype ، Final String keymethodName) {if (collectionUtils.isempty (coll)) {return new hashset <k> (0) ؛ } المجموعة النهائية <k> set = new LinkedHashSet <K> (coll.size ()) ؛ حاول {for (value v value: coll) {object ؛ طريقة الطريقة = value.getClass (). getMethod (keymethodName) ؛ Object = method.invoke (value) ؛ suppressWarnings ("غير محدد") كائن k النهائي = (k) ؛ set.add (مفتاح) ؛ }} catch (استثناء e) {logger.error (e.getMessage () ، e) ؛ رمي CollectionUtilsexception ("مجموعة استثناءات مجموعة تحويل المجموعة") ؛ مجموعة العودة ؛ }/** * * <p> مجموعة إلى خريطة </p> * <p> على سبيل المثال: قائمة <emexetive> ، تحدث عن سمة اسم الموظف كمفتاح وتحويله إلى خريطة </p> * param coll source collection * param keytytype type * @param intary type type (intity intity) Dong Yangyang * @ttime 2017-4-10 11:32:01 am */ public static <k ، v> map <k ، v> asmap (final java.util.collection <v> coll ، class final <k> keytype ، class final <v> valuetype ، keymethodname) V> (0) ؛ } الخريطة النهائية <k ، v> map = new LinkedHashMap <k ، v> (coll.size ()) ؛ حاول {method method = valuetype.getMethod (keymethodName) ؛ لـ (value v value: coll) {Object ؛ Object = method.invoke (value) ؛ suppressWarnings ("غير محدد") كائن k النهائي = (k) ؛ map.put (المفتاح ، القيمة) ؛ }} catch (استثناء e) {logger.error (e.getMessage () ، e) ؛ رمي CollectionUtilsexception ("استثناءات خريطة تحويل المجموعة") ؛ } خريطة الإرجاع ؛ }/** * * <p> Collection to List </p> * param coll * return arraylist * @autho dong yangyang * @ttime 2017-4-10 11:32:56 am */public static <v> list <v> aslist (final java.util.collection <v> coll) } القائمة النهائية <V> list = new ArrayList <V> () ؛ لـ (value v value: coll) {if (value! = null) {list.add (value) ؛ }} قائمة الإرجاع ؛ }/** * <p> Collection <string> toString </p> * param مجموعة يجب أن يكون العام من نوع السلسلة * param تقسيم على سبيل المثال ، الموصل "،" * @RETUTHO DONG YANGYANG * @TTIM StringBuilder () ؛ if (collection! = null) {int i = 0 ، size = collection.size () ؛ لـ (iterator <string> iterator = collection.iterator () ؛ iterator.hasNext () ؛) {String str = iterator.next () ؛ sb.append (str) ؛ if (++ i <size) {sb.append (split) ؛ }}} return sb.toString () ؛ } collection static collectionUtilsexception يمتد RunTimeException {private static final long serialversionuid = 1L ؛ CollectionUtilsexception (سلسلة S) {super (s) ؛ } public collectionUtilsexception (String s ، rehable e) {super (s ، e) ؛ } collectionUtilsexception (throwable e) {super (e) ؛ }} public static void main (string [] args) {list <string> baseList = new ArrayList <string> (1000000) ؛ لـ (int i = 0 ؛ i <1000000 ؛ i ++) {baselist.add ("البيانات:"+"i") ؛ } long currentItimEmillis1 = System.CurrentTimeMillis () ؛ قائمة <list <string >> splitlist = splitlist (baselist ، 1000) ؛ currentTimEmillis2 = system.currentTimeMillis () ؛ System.out.println (splitlist.size ()) ؛ System.out.println ("وقت إكمال القطع هو:"+string.valueof (CurrentTimeMillis2-CurrentTimeMillis1)+"MS") ؛ currentTimeMillis3 = System.CurrentTimeMillis () ؛ قائمة <list <string >> newList = FastSplitList (BaseList ، 1000) ؛ currentTimeMillis4 = system.currentTimeMillis () ؛ System.out.println (NewList.size ()) ؛ System.out.println ("وقت الانتهاء السريع هو:"+string.valueof (CurrentTimeMillis4-CurrentTimeMillis3)+"MS") ؛ قائمة <EmployeEntity> perfecteelist = new ArrayList <Employeeentity> () ؛ من أجل (int i = 1 ؛ i <11 ؛ i ++) {unittyeentity untity = new amployeEntity () ؛ entity.setName ("name"+string.valueof (i)) ؛ extervielist.Add (الكيان) ؛ } system.out.println (perforeelist.size ()) ؛ تعيين <string> set = collectionUtils.Asset (eferenceeelist ، string.class ، "getName") ؛ لـ (اسم السلسلة: set) {system.out.println (name) ؛ } الخريطة <string ، amployeEntity> map = collectionUtils.Asmap (eferenceeelist ، string.class ، exearcheentity.class ، "getName") ؛ SET <STRING> KEYSET = MAP.KEYSET () ؛ لـ (مفتاح السلسلة: keyset) {system.out.println (key) ؛ system.out.println (map.get (key)) ؛ } LIST <EmployeEntity> list = collectionUtils.aslist (map.values ()) ؛ لـ (الموظف الموظف: قائمة) {system.out.println (الموظف) ؛ }}}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.