zoukankan      html  css  js  c++  java
  • 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());
    	}
    
    }
    每天一点点,惊喜不间断
  • 相关阅读:
    设计模式入门--设计模式原则(总纲)
    Chart图形 [GDI+] OWCChart统计图的封装类 (转载)
    Chart图形 [功能帮助类] Assistant创建显示图像的标签和文件 (转载)
    [GDI+] 生成缩略图的类文件SmallImage (转载)
    [Mime] 在c#程序中放音乐的帮助类 (转载)
    [访问系统] Api_Win32_Mac类工具包 (转载)
    [访问系统] C#计算机信息类ComputerInfo (转载)
    [Jquery] jQuery.cookie帮助类 (转载)
    [综合|基础|语法] 最新的皮肤帮助类 UI_Misc_Helper (转载)
    [JS] JavascriptHelp (转载)
  • 原文地址:https://www.cnblogs.com/wszn-java/p/14754705.html
Copyright © 2011-2022 走看看