public class ListUtil {
//region 查询List1与List2中相同的数据
/**
* 查询List1与List2中相同的数据
*
* @param list1
* @param list2
* @return
*/
public static List<String> getSameData(List<String> list1, List<String> list2) {
try {
List<String> commonElements = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
return commonElements;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//endregion
//region 查询list1中存在list2中不存在的数据
/**
* 查询list1中存在list2中不存在的数据
*
* @param list1
* @param list2
* @return
*/
public static List<String> getList1HaveData(List<String> list1, List<String> list2) {
try {
List<String> resultList = list1.stream()
.filter(item -> list2.stream().noneMatch(item::equals))
.collect(Collectors.toList());
return resultList;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//endregion
//region 查询list1中不存在list2中存在的数据
/**
* 查询list1中不存在list2中存在的数据
*
* @param list1
* @param list2
* @return
*/
public static List<String> getList1NoHaveData(List<String> list1, List<String> list2) {
try {
List<String> resultList = list2.stream()
.filter(element -> !list1.contains(element))
.collect(Collectors.toList());
return resultList;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//endregion
}
List<String> list1 = Arrays.asList("1", "2", "3");
List<String> list2 = Arrays.asList("1", "2", "4");