Да, используя Stream
с reduce
:
MyObject myObject = listofThings.stream()
.reduce(new MyObject(),
MyObject::combine,
MyObject::combiner);
, где combiner
- это метод MyObject
, который принимает другой экземпляр MyObject
и объединяет его в текущий объект.
В качестве альтернативы вы можете сначала map
экземпляры Thing
до MyObject
экземпляров, а затем уменьшить эти экземпляры до одного MyObject
экземпляра:
MyObject myObject = listofThings.stream()
.map(new MyObject()::combine)
.reduce(MyObject::combiner)
.orElseGet(MyObject::new);