gpt4 book ai didi

Java交集集合

转载 作者:行者123 更新时间:2023-11-29 04:53:01 24 4
gpt4 key购买 nike

我想找到一种优雅的方式:

我有两个集合 A 和 B,如果它们都不为空,那么我需要做交集(将公共(public)元素存储在另一个列表中)。

如果其中一个是空的,我将不得不获取另一个的所有元素。

如果两者都为空,则生成的集合将为空。

有没有办法在不使用很多 if 条件且性能良好的情况下解决这个问题?

这是可行的,但不是很好:

import org.apache.commons.collections4.CollectionUtils;
...
...
List<Long> listA = new ArrayList<Long>();
List<Long> listB = new ArrayList<Long>();
//initialisation list A & listB

List<Long> outputList = null;
if(listA.size()>0 && listB.size() >0) {
outputList = new ArrayList(CollectionUtils.intersection(listB, listA));
}
else if(listA.size()==0){
outputList = listB;
}
else if(listB.size()==0){
outputList = listA;
}

谢谢!

最佳答案

我不会这么想,仅仅因为你的情况:

If one list is empty, return the other list.

这不是交集的典型定义,我不确定它是否是标准库中涵盖的常见操作。因此,您必须自己处理该逻辑。

如果你真的想摆脱 if 语句,那么你可以使用三元运算符:

return listA.isEmpty() ? listB :
listB.isEmpty() ? listA :
new ArrayList(CollectionUtils.intersection(listB, listA));

关于Java交集集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com