栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java拓展集合工具类CollectionUtils

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java拓展集合工具类CollectionUtils

拓展集合工具类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.util.linkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.demo.bean.EmployeeEntity;


public class CollectionUtils extends org.apache.commons.collections.CollectionUtils {

 private static final Logger LOGGER = LoggerFactory.getLogger(CollectionUtils.class);

 private static final int DEFAULT_SIZE = 1000;

 
 @SuppressWarnings("unchecked")
 public static  List> fastSplitList(List 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> resultList = new ArrayList>();
  for (int i = 0; i < arrSize; i++) {
   if (arrSize - 1 == i) {
    resultList.add((List) new ArrayList( baseList.subList(i * size, baseList.size())));
   } else {
    resultList.add((List) new ArrayList( baseList.subList(i * size, size * (i + 1))));
   }
  }
  return resultList;
 }

 
 public static  List> splitList(List baseList, int size) {
  if (baseList == null || baseList.size() == 0) {
   return null;
  }
  if (size <= 0) {
   size = DEFAULT_SIZE;
  }
  List> resultList = new ArrayList>();
  for (int i = 0; i < baseList.size(); ++i) {
   if (i % size == 0) {
    List result = new ArrayList();
    resultList.add(result);
   }
   resultList.get(i / size).add(baseList.get(i));
  }
  return resultList;
 }

 
 public static  Set asSet(final java.util.Collection coll,final Class keyType
   ,final String keyMethodName) {
  if (CollectionUtils.isEmpty(coll)) {
   return new HashSet(0);
  }
  final Set set = new linkedHashSet(coll.size());
  try {
   for (final V value : coll) {
    Object object;
    Method method = value.getClass().getMethod(keyMethodName);
    object = method.invoke(value);
    @SuppressWarnings("unchecked")
    final K key = (K) object;
    set.add(key);
   }
  } catch (Exception e) {
   LOGGER.error(e.getMessage(), e);
   throw new CollectionUtilsException("Collection conversion Set exceptions");
  }
  return set;
 }

 
 public static  Map asMap(final java.util.Collection coll,final Class keyType
   ,final Class valueType,final String keyMethodName) {
  if (CollectionUtils.isEmpty(coll)) {
   return new linkedHashMap(0);
  }
  final Map map = new linkedHashMap(coll.size());
  try {
   Method method = valueType.getMethod(keyMethodName);
   for (final V value : coll) {
    Object object;
    object = method.invoke(value);
    @SuppressWarnings("unchecked")
    final K key = (K) object;
    map.put(key, value);
   }
  } catch (Exception e) {
   LOGGER.error(e.getMessage(), e);
   throw new CollectionUtilsException("Collection conversion Map exceptions");
  }
  return map;
 }

 
 public static  List asList(final java.util.Collection coll) {
  if (CollectionUtils.isEmpty(coll)) {
   return new ArrayList(0);
  }
  final List list = new ArrayList();
  for (final V value : coll) {
   if (value != null) {
    list.add(value);
   }
  }
  return list;
 }

 
 public static String collToString(Collection collection, String split) {
  StringBuilder sb = new StringBuilder();
  if (collection != null) {
   int i = 0, size = collection.size();
   for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
    String str = iterator.next();
    sb.append(str);
    if (++i < size) {
     sb.append(split);
    }
   }
  }
  return sb.toString();
 }

 static class CollectionUtilsException extends RuntimeException{

  private static final long serialVersionUID = 1L;

  public CollectionUtilsException(String s) {
   super(s);
  }

  public CollectionUtilsException(String s, Throwable e) {
   super(s, e);
  }

  public CollectionUtilsException(Throwable e) {
   super(e);
  }

 }

 public static void main(String[] args) {
  List baseList = new ArrayList(1000000);
  for (int i = 0; i < 1000000; i++) {
   baseList.add("data:"+" i");
  }
  long currentTimeMillis1 = System.currentTimeMillis();
  List> splitList = splitList(baseList, 1000);
  long currentTimeMillis2 = System.currentTimeMillis();
  System.out.println(splitList.size());
  System.out.println("切割完成时间为:"+String.valueOf(currentTimeMillis2-currentTimeMillis1)+"毫秒");
  long currentTimeMillis3 = System.currentTimeMillis();
  List> newList = fastSplitList(baseList,1000);
  long currentTimeMillis4 = System.currentTimeMillis();
  System.out.println(newList.size());
  System.out.println("快速切割完成时间为:"+String.valueOf(currentTimeMillis4-currentTimeMillis3)+"毫秒");

  List employeeList = new ArrayList();
  for (int i = 1; i < 11; i++) {
   EmployeeEntity entity = new EmployeeEntity();
   entity.setName("名字"+String.valueOf(i));
   employeeList.add(entity);
  }
  System.out.println(employeeList.size());
  Set set = CollectionUtils.asSet(employeeList, String.class, "getName");
  for (String name : set) {
   System.out.println(name);
  }

  Map map = CollectionUtils.asMap(employeeList, String.class, EmployeeEntity.class, "getName");
  Set keySet = map.keySet();
  for (String key : keySet) {
   System.out.println(key);
   System.out.println(map.get(key));
  }

  List list = CollectionUtils.asList(map.values());
  for (EmployeeEntity employeeEntity : list) {
   System.out.println(employeeEntity);
  }
 }
}


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号