sách gpt4 ăn đã đi

Sử dụng ổi để kết hợp nhiều Bộ sưu tập Hợp nhất thành một bộ sưu tập Một bộ sưu tập duy nhất trong

In lại 作者:搜寻专家 更新时间:2023-11-01 01:23:01 29 4
mua khóa gpt4 giày nike

我想做的是使用良好的旧循环非常简单。

假设我有一个包含 B 列表的对象 A。

public class A
{
public List myListOfB;
}

在其他一些方法中,我有一个 As 列表。基本上,我想做的是合并我所有 A 的 B 列表中的所有元素。

例如,使用循环很容易写出这样的东西:

public List someMethod(List myListOfAs)
{
List toReturn = new ArrayList
();
for(A myA : myListOfAs)
{
toReturn.addAll(myA.myListOfB);
}
return toReturn;
}

但我想使用 Guava 以更实用的方式来完成它。这个例子非常简单,但是如果有条件的话它可能会复杂得多,因此使用函数式编程是有意义的。

我是 Guava 的新手。我已经开始使用它进行过滤和排序,但我很确定它也可以使用它,但我一直无法弄清楚如何使用它。我找到了这个 Combine multiple Collections into a single logical Collection?但它并没有真正回答我的问题。

câu trả lời hay nhất

您可以使用一个函数来提取列表并使用 concat 来展平列表。这会产生一个 Iterable。

List input;
Function> t = new Function>() {
@Override public List apply(A input) {
return input.myListOfB;
}
};
Iterable transform = Iterables.concat(Iterables.transform(input, t));

如果需要,您可以创建一个列表:

ImmutableList asList = ImmutableList.copyOf(transform);
//or
List newArrayList = Lists.newArrayList(transform);

注意:通常,类的公共(public)字段是静态且不可变的或私有(private)的。其他一切都会给你带来麻烦。

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress