从此对象集合中获取object.getSomething()的集合

时间:2014-08-20 07:03:27

标签: java collections

我们说我有一个Collection<MyObject>,我希望得到Collection<Integer>myObjects.getIntValues()之类的新集合。我能否快速而清晰地制作新的Collection并迭代所有集合成员并将MyObject.getIntValue()添加到新集合中?

List<Int> list = new ArrayList<Int>;
for(MyObject obj : myCollection) {
    list.add(obj.getIntValue());
}

2 个答案:

答案 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()),那么我没有看到迭代遍历所有对象的解决方法,并以编程方式将值放入新的集合中集合。

小心第一个变体,因为它只创建一个浅拷贝(对象将是相同的,只会复制引用)。