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