Примечание:
Как и лямбда-выражения, операции над объектами коллекции являются частью Java SE 8.
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
EL поддерживает операции с объектами коллекции: наборы (Set), списки (List) и отображения (Map). Это позволяет динамически создавать объекты коллекции, которыми затем можно управлять, используя потоки и конвейеры.
Примечание: Как и лямбда-выражения, операции над объектами коллекции являются частью Java SE 8. |
Например, вы можете построить набор следующим образом:
{1,2,3}
Вы можете построить список следующим образом. Список может содержать элементы различных типов:
[1,2,3]
[1, "two", [three,four]]
Вы можете создать отображение (Map), используя двоеточие для определения записей следующим образом:
{"one":1, "two":2, "three":3}
Вы работаете с объектами коллекции, используя вызовы методов для потока элементов, полученных из коллекции. Некоторые операции возвращают другой поток, что позволяет выполнять дополнительные операции. Таким образом, вы можете объединить эти операции в очередь.
Очередь потока состоит из следующего:
Источник (объект Stream
)
Любое количество промежуточных операций, которые возвращают поток (например, filter
и map
)
Терминальная операция, которая не возвращает поток (например, toList()
)
Метод stream
получает Stream
из java.util.Collection
или массива Java. Операции потока не изменяют исходный объект коллекции.
Например, вы можете создать список названий книг по истории следующим образом:
books.stream().filter(b->b.category == 'history')
.map(b->b.title)
.toList()
Следующий простой пример возвращает отсортированную версию исходного списка:
[1,3,5,2].stream().sorted().toList()
Потоки и операции с потоками описаны в документации по API Java SE 8, доступной по ссылке http://docs.oracle.com/javase/8/docs/api/
. Следующее подмножество операций поддерживается EL:
allMatch
anyMatch
average
count
distinct
filter
findFirst
flatMap
forEach
iterator
limit
map
max
min
noneMatch
peek
reduce
sorted
substream
sum
toArray
toList
См. спецификацию EL http://www.jcp.org/en/jsr/detail?id=341
для подробностей об этих операциях.
Назад | Вперёд | Содержание |