java list求解
有a b两个list<String>如何实现and 和 or
and b数组里面元素如果全在a里面可以找到就返回真
or b数组里面的元素可以在a数组里找到一个就返回真
list有没有什么方法可以直接实现这个 java list 取交集和并集 百度一下吧,自己动手才行. retainAll();
addAll(); public static List<Element> retainElementList(List<List<Element>> elementLists) {
Optional<List<Element>> result = elementLists.parallelStream()
.filter(elementList -> elementList != null && ((List) elementList).size() != 0)
.reduce((a, b) -> {
a.retainAll(b);
return a;
});
return result.orElse(new ArrayList<>());
} 本帖最后由 缘浅丶 于 2021-12-9 13:33 编辑
public boolean and(List<String> listB){
return listA.containsAll(listB);
}
public boolean or(List<String> listB){
for (String string:listB){
if(listA.contains(string)){
return true;
}
}
return false;
} 本帖最后由 缘浅丶 于 2021-12-9 13:33 编辑
public boolean and(List<String> listB){
return listA.containsAll(listB);
}
public boolean or(List<String> listB){
for (String string:listB){
if(listA.contains(string)){
return true;
}
}
return false;
} /**
* 获取两个集合的交集
*
* @Param c1
* @param c2
* @return
*/
public static <T> List<T> getInterSection(Collection<T> c1, Collection<T> c2) {
Set<T> intersections = Sets.intersection(Sets.newHashSet(c1), Sets.newHashSet(c2));
return Lists.newArrayList(intersections);
}
/**
* 获取两个集合的合集
*
* @param c1
* @param c2
* @return
*/
public static <T> List<T> getUnionSection(Collection<T> c1, Collection<T> c2) {
c1.addAll(c2);
Set<T> newHashSet = Sets.newHashSet(c1);
return Lists.newArrayList(newHashSet);
} 循环是最简单的,但是你说集合有没有直接的内置方法我就不清楚了,没遇到过这种需求
页:
[1]