0
点赞
收藏
分享

微信扫一扫

集合工具类


集合工具类

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
/**
 * 集合工具类
 */
public class CollectionUtils {
 
    /**
     **取两个集合的交集
     * @param listOne 集合1
     * @param listTwo 集合2
     * @return java.util.List<java.lang.String>
     **/
    public static List<String> getIntersection(List<String> listOne, List<String> listTwo) {
        List<String> intersectionList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(listOne) && CollectionUtil.isNotEmpty(listTwo)) {
            for (String fileId : listOne) {
                if (listTwo.contains(fileId)) {
                    intersectionList.add(fileId);
                }
            }
        }
        return intersectionList;
    }
 
    /**
     **合并两个集合的元素
     * @param listOne
     * @param listTwo
     * @return java.util.List<T>

     **/
    public static <T> List<T> mergeLists(List<T> listOne, List<T> listTwo) {
        List<T> result = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(listOne)) {
            result.addAll(listOne);
        }
        if (CollectionUtil.isNotEmpty(listTwo)) {
            result.addAll(listTwo);
        }
        return result;
    }
 
    /**
     **去重复
     * @param list
     * @return java.util.List<java.lang.String>
     **/
    public static List<String> removeDuplicates(List<String> list) {
        Set<String> set = new HashSet<>(list);
        return new ArrayList<>(set);
    }
 
    /**
     * 将allList剔除掉existList后返回
     * @param allList
     * @param existList
     * @return java.util.List<java.lang.String>
     **/
    public static List<String> removeExistingElements(List<String> allList, List<String> existList) {
        List<String> resultList = new ArrayList<>(allList);
        resultList.removeAll(existList);
        return resultList;
    }
 
    /**
     * 获取两个List的并集
     *
     * @param list1 第一个List
     * @param list2 第二个List
     * @return 两个List的并集
     */
    public static <T> List<T> union(List<T> list1, List<T> list2) {
        Set<T> set = new HashSet<>();
        set.addAll(list1);
        set.addAll(list2);
        return new ArrayList<>(set);
    }
 
    /**
     * 获取两个List的交集
     *
     * @param list1 第一个List
     * @param list2 第二个List
     * @return 两个List的交集
     */
    public static <T> List<T> intersection(List<T> list1, List<T> list2) {
        List<T> result = new ArrayList<>();
        for (T element : list1) {
            if (list2.contains(element)) {
                result.add(element);
            }
        }
        return result;
    }
 
    /**
     * 去除List中的重复元素
     *
     * @param list 原始List
     * @return 去除重复元素后的List
     */
    public static <T> List<T> removeDuplicates(List<T> list) {
        Set<T> set = new HashSet<>();
        List<T> result = new ArrayList<>();
        for (T element : list) {
            if (set.add(element)) {
                result.add(element);
            }
        }
        return result;
    }
 
    /**
     * 实体转Map
     * @param entity 实体
     * @return map
     */
    public static Map<String, Object> entityToMap(Object entity) {
        Map<String, Object> map = new HashMap<>(20);
        try {
            // 获取实体对象的class
            Class<?> clazz = entity.getClass();
            // 遍历实体对象的所有字段
            for (Field field : clazz.getDeclaredFields()) {
                // 设置字段可访问
                field.setAccessible(true);
                // 获取字段名和字段值,并放入map中
                String fieldName = field.getName();
                Object fieldValue = field.get(entity);
                if ("sex".equalsIgnoreCase(fieldName)) {
                    map.put(fieldName, fieldValue != null && Str.isNotEmpty(fieldValue.toString()) ? ("0".equalsIgnoreCase(fieldValue.toString()) ? "男" : "女") : "未知");
                } else {
                    map.put(fieldName, fieldValue);
                }
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return map;
    }
 
    /**
     **将List<String>集合转为以逗号隔开的字符串,如:
     * '张三', '李四', '王五'
     * @param list
     * @return java.lang.String
     **/
    public static String convertListToString(List<String> list) {
        if (CollectionUtil.isEmpty(list)){
            return "";
        }
        return list.stream().map(s -> "'" + s + "'").collect(Collectors.joining(", "));
    }
}


举报

相关推荐

0 条评论