项目中-ListUtil

/**
 * @className ListUtil
 * @author Echo
 * @description List操作工具类
 * @updateTime 2021/12/9 21:25
 * @version 1.0
 */
public class ListUtil {
    
    

    private static Logger logger = LoggerFactory.getLogger(ListUtil.class);

    /**
     * @methodName getElementsInFirstListBetweenLists
     * @author Echo
     * @param: firstCol
     * @param: secondCol
     * @version 1.0
     * @description 在两个集合中,获取在第一个而不再第二个的元素
     * @updateTime 2021/12/9 21:29
     * @return: java.util.List<java.lang.String>
     * @throws
     */
    public static List<String> getElementsInFirstListBetweenLists(Collection<String> firstList, Collection<String> secondList) {
    
    

        long t = System.currentTimeMillis();

        Set<String> sameString = new HashSet<String>(secondList);
        List<String> result = new ArrayList<String>(firstList.size());
        for (String s : firstList) {
    
    
            if (!sameString.contains(s)) {
    
    
                result.add(s);
            }
        }

        if(System.currentTimeMillis() - t > 1){
    
    
            logger.debug("getElementsInFirstListBetweenLists with list first.size={},sencond.size={},use time={}ms",firstList.size(),secondList.size(),System.currentTimeMillis()-t);
        }

        return result;

    }

    /**
     * @methodName getElementsInFirstAndSecondListBetweenLists
     * @author Echo
     * @param: firstCol
     * @param: secondCol
     * @version 1.0
     * @description 获取两个集合中的交集
     * @updateTime 2021/12/9 21:33
     * @return: java.util.List<java.lang.String>
     * @throws
     */
    public static List<String> getElementsInFirstAndSecondListBetweenLists(Collection<String> firstList, Collection<String> secondList) {
    
    

        long t = System.nanoTime();

        Set<String> set = new HashSet<String>(secondList);
        List<String> sameElements = new ArrayList<String>(firstList.size());
        for(String item : firstList){
    
    
            if(set.contains(item)){
    
    
                sameElements.add(item);
            }
        }

        if(logger.isDebugEnabled()){
    
    
            logger.debug("getElementsInFirstAndSecondListBetweenLists list.size={},list2.size={},use time={}ns",firstList.size(),secondList.size(),System.nanoTime()-t);
        }

        return sameElements;

    }

    /**
     * @methodName hasSameElementsInLists
     * @author Echo
     * @param: firstList
     * @param: secondList
     * @version 1.0
     * @description 判断两个集合中是否有相同的元素
     * @updateTime 2021/12/9 21:37
     * @return: boolean
     * @throws
     */
    public static boolean hasSameElementsInLists(List<String> firstList,List<String> secondList){
    
    

        for (String item : firstList) {
    
    
            if(secondList.contains(item)){
    
    
                return true;
            }
        }

        return false;

    }

    /**
     * @methodName toStrArr
     * @author Echo
     * @param: list
     * @version 1.0
     * @description 将List转化为String
     * @updateTime 2021/12/9 22:53
     * @return: java.lang.String[]
     * @throws
     */
    public static String[] toStrArr(List<String> list) {
    
    
        return list.toArray(new String[0]);
    }

    /**
     * @methodName notEqualsIgnoreCase
     * @author Echo
     * @param: str1
     * @param: str2
     * @version 1.0
     * @description 两个字符是否相同(忽略大小写)
     * @updateTime 2021/12/9 22:56
     * @return: boolean
     * @throws
     */
    public static boolean notEqualsIgnoreCase(String str1, String str2) {
    
    
        return !equalsIgnoreCase(str1, str2);
    }


    /**
     * @methodName listToStr
     * @author Echo
     * @param: list
     * @version 1.0
     * @description 将List转换为String,元素以 , 分割
     * @updateTime 2021/12/9 22:59
     * @return: java.lang.String
     * @throws
     */
    public static String listToStr(List<String> list) {
    
    

        StringBuilder buff = new StringBuilder();
        for (String s : list) {
    
    
            buff.append(s + ",");
        }
        if (buff.length() > 0) {
    
    
            buff.deleteCharAt(buff.length() - 1);
        }

        return buff.toString();

    }

}

Guess you like

Origin blog.csdn.net/weixin_45438044/article/details/121856237