gpt4 book ai didi

java - 从现有集合创建新集合

转载 作者:行者123 更新时间:2023-12-01 18:27:54 25 4
gpt4 key购买 nike

我有一个对象集合,如下所示:

Collection<Foo>

哪里Foo

public class Foo {

private User user;
private Item item;

public Foo(User user, Item item) {
this.user = user;
this.item = item;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public Item getItem() {
return item;
}

public void setItem(Item item) {
this.item = item;
}

}

我想返回 Collection<Item> 类型的另一个集合使用Collection<Foo> 。我可以通过使用 for loop 来做到这一点并循环遍历 Collection,获取项目并将其添加到新列表中。到目前为止,我已经使用 Google Guava 创建了我的 Collection<Foo>使用谓词。

Google guava 中是否有方法/函数可以让我创建 Collection<Item>来自Collection<Foo> ?我应该使用转换函数吗?

最佳答案

如果您可以使用 Java 8:

Collection<Item> items = foos.stream()
.map(Foo::getItem)
.collect(toList());

否则你确实可以use the transform method 。对于您的情况:

Function<Foo, Item> f = 
new Function<Foo, Item>() {
public Item apply(Foo foo) { return foo.getItem(); }
};

Collection<Item> items = Collections2.transform(foos, f);

关于java - 从现有集合创建新集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25372983/

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