Где data.careas — это List< /код>:
Код: Выделить всё
CArea first = data.careas.stream()
.filter(c -> c.bbox.orientationHorizontal).findFirst().get();
CArea last = data.careas.stream()
.filter(c -> c.bbox.orientationHorizontal)
.collect(Collectors.toList()).; //how to?
Однако получение последнего элемента в однострочном файле — это настоящая боль:
- Кажется, я не могу получить его напрямую из потока< /код>. (Это имеет смысл только для конечных потоков)
- Также кажется, что вы не можете получить такие вещи, как first() и Last() из списка, что действительно неприятно.
Но согласно исходному ответу: Как получить последний элемент конечного потока?
Лично это самое близкое, что я мог получить:
Код: Выделить всё
int lastIndex = data.careas.stream()
.filter(c -> c.bbox.orientationHorizontal)
.mapToInt(c -> data.careas.indexOf(c)).max().getAsInt();
CArea last = data.careas.get(lastIndex);
Подробнее здесь: https://stackoverflow.com/questions/214 ... -one-liner
Мобильная версия