【发布时间】:2011-11-21 10:31:39
【问题描述】:
在 C# 中我可以这样做:
IEnumerable<long> ids = things.select(x => x.Id);
在 Java 中我必须这样做:
Collection<Long> ids = new ArrayList<Long>(things.size());
for(Thing x : things)
ids.add(x.getId());
现在不得不做很多这样的事情,想知道在 Java 中是否有更通用的方法来做到这一点。可以创建一个方法来做到这一点,但是我必须添加一个带有 getId 方法的接口或类似的东西......我不能......
【问题讨论】:
-
我假设
things不继承自集合或数组。 -
你为什么这么认为?我使用
for循环things,所以至少必须是数组或可迭代的。 -
@Brett Walker 需要一个 id 集合,而不是另一个东西集合
-
@Brett 我不想要另一个事物的集合,我想要事物的某个属性的值的集合,在这个例子中是它们的 id。
-
你想用这个属性集合做什么。 (旁白:- 没有说明
this的类型。)考虑到更大的上下文,具体问题可能会提供不同的解决方案。
标签: java collections properties