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());
	}

}
每天一点点,惊喜不间断
原文地址:https://www.cnblogs.com/wszn-java/p/14754705.html