集合工具类
-
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(", ")); } }