我们说我有一个Collection<MyObject>
,我希望得到Collection<Integer>
与myObjects.getIntValues()
之类的新集合。我能否快速而清晰地制作新的Collection并迭代所有集合成员并将MyObject.getIntValue()
添加到新集合中?
List<Int> list = new ArrayList<Int>;
for(MyObject obj : myCollection) {
list.add(obj.getIntValue());
}
答案 0 :(得分:1)
Java 8流的示例:
final List<Object> objects = Arrays.asList(1, 2, 3, 4);
final List<Integer> integers = objects.stream()
.map(o -> (Integer) o)
.collect(Collectors.toList());
答案 1 :(得分:0)
如果您只想要一个与原始值相同的新集合,则可以使用Collection
类的copy Method。
如果你想创建一个与原始集合中的值不同的新集合(MyObject.getIntValue()
),那么我没有看到迭代遍历所有对象的解决方法,并以编程方式将值放入新的集合中集合。
小心第一个变体,因为它只创建一个浅拷贝(对象将是相同的,只会复制引用)。