• GeneralUtils


    package com.suning.cpm.utils;
    
    import lombok.extern.slf4j.Slf4j;
    import net.sf.cglib.beans.BeanCopier;
    import org.apache.commons.collections.CollectionUtils;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;
    import java.util.Optional;
    
    /**
     * @author 20014258
     * @date 2021/1/19
     */
    @Slf4j
    public class GeneralUtils {
            private final static AtomicInteger COUNT_ID = new AtomicInteger();
    	/**
    	 * 多集合(过滤空集合)取交集retain公共方法
    	 */
    	public static Collection retain(Collection<Collection> c){
    		Optional result = c.parallelStream()
    				.filter(element -> CollectionUtils.isNotEmpty(element))
    				.reduce((m1, m2)->{
    			m1.retainAll(m2);
    			return m1;
    		});
    		return (Collection) result.get();
    	}
    
    	/**
    	 * 多集合(过滤空集合)取交集retain公共方法 参数String
    	 */
    	public static List<String> retainElementList(List<List<String>> elementLists) {
    		Optional<List<String>> result = elementLists.parallelStream()
    				.filter(elementList -> CollectionUtils.isNotEmpty(elementList))
    				.reduce((a, b) -> {
    					a.retainAll(b);
    					return a;
    				});
    		return result.orElse(new ArrayList<>());
    	}
    
    
    	/**
    	 * 性能更好的对象拷贝属性
    	 * 要比 BeanUtils.copyProperties 快n倍
    	 * @param source
    	 * @param target
    	 */
    	public static void copyProperties(Object source, Object target) {
    		BeanCopier copier = BeanCopier.create(source.getClass(), target.getClass(), false);
    		copier.copy(source, target, null);
    	}
    
            /**
      	 * 统计字符串出现的次数
      	 * @param str
      	 * @param find
      	 * @return
      	 */
      	public static int countString(String str, String find) {
      		int count = 0;
      		while (str.indexOf(find) != -1) {
      			count++;
      			str = str.substring(str.indexOf(find) + find.length());
      		}
      		return count;
      	}
    
            /**
    	 * List转换成IN参数
    	 *
    	 * @param listString
    	 * @return
    	 */
    	public static String listToIn(List<String> listString) {
    		String result = "";
    		for (String str : listString) {
    			if (StringUtils.isBlank(str)) {
    				continue;
    			}
    			result = result + ",'" + str + "'";
    		}
    		result = result.replaceFirst(",", "");
    		return result;
    	}
    
    	/**
    	 * 当前时间戳 + 三位自增ID
    	 * 202107151936001
    	 *
    	 * @return
    	 */
    	public static String getUniqueId() {
    		SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmm");
    		return formatter.format(System.currentTimeMillis()) + String.format("%1$03d", COUNT_ID.incrementAndGet());
    	}
    
    }
    每天一点点,惊喜不间断
  • 相关阅读:
    Difference Between Arraylist And Vector : Core Java Interview Collection Question
    Man's Best Friend: The Science Behind the Dog and Human Relationship
    我在微软那些事--微软面试
    北美PM活着的攻略
    C#图解教程 第二十一章 命名空间和程序集
    C#图解教程 第二十章 异步编程
    C#图解教程 第十九章 LINQ
    C#图解教程 第十八章 枚举器和迭代器
    C#图解教程 第十七章 泛型
    C#图解教程 第十六章 转换
  • 原文地址:https://www.cnblogs.com/wszn-java/p/14754705.html
Copyright © 2020-2023  润新知