Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Collectors extends Object
Collector
та реализация различные полезные операции сокращения, такие как накапливающиеся элементы в наборы, суммируя элементы согласно различным критериям, и т.д. Следующее является примерами использования предопределенного Collector
реализации в Collectors
с Stream
API, чтобы выполнить изменчивые задачи сокращения:
// Accumulate elements into a List
List<Person> list = people.collect(Collectors.toList());
// Accumulate elements into a TreeSet
List<Person> list = people.collect(Collectors.toCollection(TreeSet::new));
// Convert elements to strings and concatenate them, separated by commas
String joined = stream.map(Object::toString)
.collect(Collectors.toStringJoiner(", "))
.toString();
// Find highest-paid employee
Employee highestPaid = employees.stream()
.collect(Collectors.maxBy(Comparators.comparing(Employee::getSalary)));
// Group employees by department
Map<Department, List<Employee>> byDept
= employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment));
// Find highest-paid employee by department
Map<Department, Employee> highestPaidByDept
= employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.maxBy(Comparators.comparing(Employee::getSalary))));
// Partition students into passing and failing
Map<Boolean, List<Student>> passingFailing =
students.stream()
.collect(Collectors.partitioningBy(s -> s.getGrade() >= PASS_THRESHOLD);
Объяснение TODO параллельного набораМодификатор и Тип | Метод и Описание |
---|---|
static <T> Collector<T,Long> |
counting()
Возвраты a
Collector<T, Long> это считает число входных элементов. |
static <T> BinaryOperator<T> |
firstWinsMerger()
Возвращает функцию слияния, подходящую для использования в
Map.merge() или toMap() , который реализует "первые победы" политика. |
static <T,K> Collector<T,Map<K,List<T>>> |
groupingBy(Function<? super T,? extends K> classifier)
Возвраты a
Collector реализация "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации. |
static <T,K,D> Collector<T,Map<K,D>> |
groupingBy(Function<? super T,? extends K> classifier, Collector<? super T,D> downstream)
Возвраты a
Collector реализация каскадной "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector . |
static <T,K,D,M extends Map<K,D>> |
groupingBy(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,D> downstream)
Возвраты a
Collector реализация каскадной "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector . |
static <T,K> Collector<T,ConcurrentMap<K,List<T>>> |
groupingByConcurrent(Function<? super T,? extends K> classifier)
Возвраты a
Collector реализация параллельной "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации. |
static <T,K,D> Collector<T,ConcurrentMap<K,D>> |
groupingByConcurrent(Function<? super T,? extends K> classifier, Collector<? super T,D> downstream)
Возвраты a
Collector реализация параллельной каскадной "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector . |
static <T,K,D,M extends ConcurrentMap<K,D>> |
groupingByConcurrent(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,D> downstream)
Возвращает параллельное
Collector реализация каскадной "группы" работой на входных элементах типа T , группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector . |
static <T> BinaryOperator<T> |
lastWinsMerger()
Возвращает функцию слияния, подходящую для использования в
Map.merge() или toMap() , который реализует "последние победы" политика. |
static <T,U,R> Collector<T,R> |
mapping(Function<? super T,? extends U> mapper, Collector<? super U,R> downstream)
Адаптирует a
Collector<U,R> к a Collector<T,R> применяя отображающуюся функцию к каждому входному элементу перед накоплением. |
static <T> Collector<T,T> |
maxBy(Comparator<? super T> comparator)
Возвраты a
Collector<T, T> это производит максимальный элемент согласно данному Comparator . |
static <T> Collector<T,T> |
minBy(Comparator<? super T> comparator)
Возвраты a
Collector<T, T> это производит минимальный элемент согласно данному Comparator . |
static <T> Collector<T,Map<Boolean,List<T>>> |
partitioningBy(Predicate<? super T> predicate)
Возвраты a
Collector который делит входные элементы согласно a Predicate , и организует их в a Map<Boolean, List<T>> . |
static <T,D> Collector<T,Map<Boolean,D>> |
partitioningBy(Predicate<? super T> predicate, Collector<? super T,D> downstream)
Возвраты a
Collector который делит входные элементы согласно a Predicate , уменьшает значения в каждом разделе согласно другому Collector , и организует их в a Map<Boolean, D> чьи значения являются результатом нисходящего сокращения. |
static <T> Collector<T,T> |
reducing(BinaryOperator<T> op)
Возвраты a
Collector<T,T> который выполняет сокращение его входных элементов под указанным BinaryOperator . |
static <T> Collector<T,T> |
reducing(T identity, BinaryOperator<T> op)
Возвраты a
Collector<T,T> который выполняет сокращение его входных элементов под указанным BinaryOperator . |
static <T,U> Collector<T,U> |
reducing(U identity, Function<? super T,? extends U> mapper, BinaryOperator<U> op)
Возвраты a
Collector<T,U> который выполняет сокращение его входных элементов под указанной функцией отображения и BinaryOperator . |
static <T> Collector<T,Long> |
sumBy(Function<? super T,Long> mapper)
Возвраты a
Collector<T, Long> это производит сумму долго оцененной функции, которой применяются к входной элемент. |
static <T> BinaryOperator<T> |
throwingMerger()
Возвращает функцию слияния, подходящую для использования в
Map.merge() или toMap() , который всегда бросает IllegalStateException . |
static <T,C extends Collection<T>> |
toCollection(Supplier<C> collectionFactory)
Возвраты a
Collector это накапливает входные элементы в новое Collection , во встречаются с порядком. |
static <T,K,U> Collector<T,ConcurrentMap<K,U>> |
toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
Накопите элементы в a
ConcurrentMap чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T,K,U> Collector<T,ConcurrentMap<K,U>> |
toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
Накопите элементы в a
ConcurrentMap чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T,K,U,M extends ConcurrentMap<K,U>> |
toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
Накопите элементы в a
ConcurrentMap чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T> Collector<T,DoubleSummaryStatistics> |
toDoubleSummaryStatistics(ToDoubleFunction<? super T> mapper)
Возвраты a
Collector который применяется double - производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений. |
static <T> Collector<T,IntSummaryStatistics> |
toIntSummaryStatistics(ToIntFunction<? super T> mapper)
Возвраты a
Collector который применяется int - производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений. |
static <T> Collector<T,List<T>> |
toList()
Возвраты a
Collector это накапливает входные элементы в новое List . |
static <T> Collector<T,LongSummaryStatistics> |
toLongSummaryStatistics(ToLongFunction<? super T> mapper)
Возвраты a
Collector который применяется long - производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений. |
static <T,K,U> Collector<T,Map<K,U>> |
toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
Накопите элементы в a
Map чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T,K,U> Collector<T,Map<K,U>> |
toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
Накопите элементы в a
Map чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T,K,U,M extends Map<K,U>> |
toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
Накопите элементы в a
Map чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. |
static <T> Collector<T,Set<T>> |
toSet()
Возвраты a
Collector это накапливает входные элементы в новое Set . |
static Collector<String,StringBuilder> |
toStringBuilder()
Возвраты a
Collector это связывает входные элементы в новое StringBuilder . |
static Collector<CharSequence,StringJoiner> |
toStringJoiner(CharSequence delimiter)
Возвраты a
Collector это связывает входные элементы в новое StringJoiner , использование указанного разделителя. |
public static <T> BinaryOperator<T> throwingMerger()
Map.merge()
или toMap()
, который всегда бросает IllegalStateException
. Это может использоваться, чтобы осуществить предположение, что собираемые элементы отличны.T
- тип входных параметров функции слиянияIllegalStateException
firstWinsMerger()
, lastWinsMerger()
public static <T> BinaryOperator<T> firstWinsMerger()
Map.merge()
или toMap()
, который реализует "первые победы" политика.T
- тип входных параметров функции слиянияlastWinsMerger()
, throwingMerger()
public static <T> BinaryOperator<T> lastWinsMerger()
Map.merge()
или toMap()
, который реализует "последние победы" политика.T
- тип входных параметров функции слиянияfirstWinsMerger()
, throwingMerger()
public static <T,C extends Collection<T>> Collector<T,C> toCollection(Supplier<C> collectionFactory)
Collector
это накапливает входные элементы в новое Collection
, во встречаются с порядком. Collection
создается обеспеченной фабрикой.T
- тип входных элементовC
- тип получающегося Collection
collectionFactory
- a Supplier
который возвращает новое, пустое Collection
из соответствующего типаCollector
который собирает все входные элементы в a Collection
, во встречаются с порядкомpublic static <T> Collector<T,List<T>> toList()
Collector
это накапливает входные элементы в новое List
. Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности List
возвращенный.T
- тип входных элементовCollector
который собирает все входные элементы в a List
, во встречаются с порядкомpublic static <T> Collector<T,Set<T>> toSet()
Collector
это накапливает входные элементы в новое Set
. Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности Set
возвращенный. Это unordered
Коллектор.
T
- тип входных элементовCollector
который собирает все входные элементы в a Set
public static Collector<String,StringBuilder> toStringBuilder()
Collector
это связывает входные элементы в новое StringBuilder
.Collector
который собирает Строковые элементы в a StringBuilder
, во встречаются с порядкомpublic static Collector<CharSequence,StringJoiner> toStringJoiner(CharSequence delimiter)
Collector
это связывает входные элементы в новое StringJoiner
, использование указанного разделителя.delimiter
- разделитель, который будет использоваться между каждым элементомCollector
который собирает Строковые элементы в a StringJoiner
, во встречаются с порядкомpublic static <T,U,R> Collector<T,R> mapping(Function<? super T,? extends U> mapper, Collector<? super U,R> downstream)
Collector<U,R>
к a Collector<T,R>
применяя отображающуюся функцию к каждому входному элементу перед накоплением.mapping()
коллекторы являются самыми полезными когда использующийся в многоуровневом сокращении, нисходящем потоке groupingBy
или partitioningBy
. Например, учитывая поток Person
, накапливать набор фамилий в каждом городе:
Map<City, Set<String>> lastNamesByCity
= people.stream().collect(groupingBy(Person::getCity,
mapping(Person::getLastName, toSet())));
T
- тип входных элементовU
- тип элементов принимается нисходящим коллекторомR
- тип результата коллектораmapper
- функция, которая будет применена к входным элементамdownstream
- коллектор, который примет отображенные значенияpublic static <T> Collector<T,Long> counting()
Collector<T, Long>
это считает число входных элементов.
reducing(0L, e -> 1L, Long::sum)
T
- тип входных элементовCollector
это считает входные элементыpublic static <T> Collector<T,T> minBy(Comparator<? super T> comparator)
Collector<T, T>
это производит минимальный элемент согласно данному Comparator
.
reducing(Comparators.lesserOf(comparator))
T
- тип входных элементовcomparator
- a Comparator
для того, чтобы сравнить элементыCollector
это производит минимальное значениеpublic static <T> Collector<T,T> maxBy(Comparator<? super T> comparator)
Collector<T, T>
это производит максимальный элемент согласно данному Comparator
.
reducing(Comparators.greaterOf(comparator))
T
- тип входных элементовcomparator
- a Comparator
для того, чтобы сравнить элементыCollector
это производит максимальное значениеpublic static <T> Collector<T,Long> sumBy(Function<? super T,Long> mapper)
Collector<T, Long>
это производит сумму долго оцененной функции, которой применяются к входной элемент.
reducing(0L, mapper, Long::sum)
T
- тип входных элементовmapper
- функция, извлекающая свойство, которое будет суммированоCollector
это производит сумму полученного свойстваpublic static <T> Collector<T,T> reducing(T identity, BinaryOperator<T> op)
Collector<T,T>
который выполняет сокращение его входных элементов под указанным BinaryOperator
.reducing()
коллекторы являются самыми полезными когда использующийся в многоуровневом сокращении, нисходящем потоке groupingBy
или partitioningBy
. Чтобы выполнить простое сокращение на потоке, использовать Stream.reduce(BinaryOperator)
вместо этого.T
- тип элемента для ввода и вывода сокращенияidentity
- значение идентификационных данных для сокращения (также, значение, которое возвращается, когда нет никаких входных элементов),op
- a BinaryOperator<T>
используемый, чтобы уменьшить входные элементыCollector
который реализует работу сокращенияreducing(BinaryOperator)
, reducing(Object, Function, BinaryOperator)
public static <T> Collector<T,T> reducing(BinaryOperator<T> op)
Collector<T,T>
который выполняет сокращение его входных элементов под указанным BinaryOperator
.reducing()
коллекторы являются самыми полезными когда использующийся в многоуровневом сокращении, нисходящем потоке groupingBy
или partitioningBy
. Чтобы выполнить простое сокращение на потоке, использовать Stream.reduce(BinaryOperator)
вместо этого. Например, учитывая поток Person
, вычислить самого высокого человека в каждом городе:
Comparator<Person> byHeight = Comparators.comparing(Person::getHeight);
BinaryOperator<Person> tallerOf = Comparators.greaterOf(byHeight);
Map<City, Person> tallestByCity
= people.stream().collect(groupingBy(Person::getCity, reducing(tallerOf)));
reducing(null, op);
T
- тип элемента для ввода и вывода сокращенияop
- a BinaryOperator<T>
используемый, чтобы уменьшить входные элементыCollector
который реализует работу сокращенияreducing(Object, BinaryOperator)
, reducing(Object, Function, BinaryOperator)
public static <T,U> Collector<T,U> reducing(U identity, Function<? super T,? extends U> mapper, BinaryOperator<U> op)
Collector<T,U>
который выполняет сокращение его входных элементов под указанной функцией отображения и BinaryOperator
. Это - обобщение reducing(Object, BinaryOperator)
который позволяет преобразование элементов перед сокращением.reducing()
коллекторы являются самыми полезными когда использующийся в многоуровневом сокращении, нисходящем потоке groupingBy
или partitioningBy
. Чтобы выполнить простое сокращение на потоке, использовать Stream.reduce(BinaryOperator)
вместо этого. Например, учитывая поток Person
, вычислить самую длинную фамилию резидентных объектов в каждом городе:
Comparator<String> byLength = Comparators.comparing(String::length);
BinaryOperator<String> longerOf = Comparators.greaterOf(byLength);
Map<City, String> longestLastNameByCity
= people.stream().collect(groupingBy(Person::getCity,
reducing(Person::getLastName, longerOf)));
T
- тип входных элементовU
- тип отображенных значенийidentity
- значение идентификационных данных для сокращения (также, значение, которое возвращается, когда нет никаких входных элементов),mapper
- отображающаяся функция, чтобы примениться к каждому входному значениюop
- a BinaryOperator<U>
используемый, чтобы уменьшить отображенные значенияCollector
реализация карты - уменьшает работуreducing(Object, BinaryOperator)
, reducing(BinaryOperator)
public static <T,K> Collector<T,Map<K,List<T>>> groupingBy(Function<? super T,? extends K> classifier)
Collector
реализация "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации. Функция классификации отображает элементы на некоторый ключевой тип K
. Коллектор производит a Map<K, List<T>>
чьи ключи являются значениями, следующими из применения функции классификации к входным элементам, и чьи соответствующие значения List
s содержащий входные элементы, которые отображаются на связанный ключ под функцией классификации.
Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности Map
или List
объекты возвратились.
groupingBy(classifier, toList());
T
- тип входных элементовK
- тип ключейclassifier
- функция классификатора отображение входных элементов к ключамCollector
реализация группы - работойgroupingBy(Function, Collector)
, groupingBy(Function, Supplier, Collector)
, groupingByConcurrent(Function)
public static <T,K,D> Collector<T,Map<K,D>> groupingBy(Function<? super T,? extends K> classifier, Collector<? super T,D> downstream)
Collector
реализация каскадной "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector
. Функция классификации отображает элементы на некоторый ключевой тип K
. Нисходящий коллектор работает на элементах типа T
и приводит к результату типа D
. Получающийся коллектор производит a Map<K, D>
.
Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности Map
возвращенный.
Например, чтобы вычислить набор фамилий людей в каждом городе:
Map<City, Set<String>> namesByCity
= people.stream().collect(groupingBy(Person::getCity,
mapping(Person::getLastName, toSet())));
T
- тип входных элементовK
- тип ключейD
- тип результата нисходящего сокращенияclassifier
- функция классификатора отображение входных элементов к ключамdownstream
- a Collector
реализация нисходящего сокращенияCollector
реализация каскадной группы - работойgroupingBy(Function)
, groupingBy(Function, Supplier, Collector)
, groupingByConcurrent(Function, Collector)
public static <T,K,D,M extends Map<K,D>> Collector<T,M> groupingBy(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,D> downstream)
Collector
реализация каскадной "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector
. Map
произведенный Коллектором создается с предоставленной функцией фабрики. Функция классификации отображает элементы на некоторый ключевой тип K
. Нисходящий коллектор работает на элементах типа T
и приводит к результату типа D
. Получающийся коллектор производит a Map<K, D>
.
Например, чтобы вычислить набор фамилий людей в каждом городе, где названия города сортируются:
Map<City, Set<String>> namesByCity
= people.stream().collect(groupingBy(Person::getCity, TreeMap::new,
mapping(Person::getLastName, toSet())));
T
- тип входных элементовK
- тип ключейD
- тип результата нисходящего сокращенияM
- тип получающегося Map
classifier
- функция классификатора отображение входных элементов к ключамdownstream
- a Collector
реализация нисходящего сокращенияmapFactory
- функция, которая, когда вызвано, производит новое пустое Map
из требуемого типаCollector
реализация каскадной группы - работойgroupingBy(Function, Collector)
, groupingBy(Function)
, groupingByConcurrent(Function, Supplier, Collector)
public static <T,K> Collector<T,ConcurrentMap<K,List<T>>> groupingByConcurrent(Function<? super T,? extends K> classifier)
Collector
реализация параллельной "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации. Это - a concurrent
и unordered
Коллектор.
Функция классификации отображает элементы на некоторый ключевой тип K
. Коллектор производит a ConcurrentMap<K, List<T>>
чьи ключи являются значениями, следующими из применения функции классификации к входным элементам, и чьи соответствующие значения List
s содержащий входные элементы, которые отображаются на связанный ключ под функцией классификации.
Нет никаких гарантий на типе, переменчивости, или сериализуемости Map
или List
объекты возвратились, или потокобезопасности List
объекты возвратились.
groupingByConcurrent(classifier, toList());
T
- тип входных элементовK
- тип ключейclassifier
- функция классификатора отображение входных элементов к ключамCollector
реализация группы - работойgroupingBy(Function)
, groupingByConcurrent(Function, Collector)
, groupingByConcurrent(Function, Supplier, Collector)
public static <T,K,D> Collector<T,ConcurrentMap<K,D>> groupingByConcurrent(Function<? super T,? extends K> classifier, Collector<? super T,D> downstream)
Collector
реализация параллельной каскадной "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector
. Это - a concurrent
и unordered
Коллектор.
Функция классификации отображает элементы на некоторый ключевой тип K
. Нисходящий коллектор работает на элементах типа T
и приводит к результату типа D
. Получающийся коллектор производит a Map<K, D>
.
Например, чтобы вычислить набор фамилий людей в каждом городе, где названия города сортируются:
ConcurrentMap<City, Set<String>> namesByCity
= people.stream().collect(groupingByConcurrent(Person::getCity, TreeMap::new,
mapping(Person::getLastName, toSet())));
T
- тип входных элементовK
- тип ключейD
- тип результата нисходящего сокращенияclassifier
- функция классификатора отображение входных элементов к ключамdownstream
- a Collector
реализация нисходящего сокращенияCollector
реализация каскадной группы - работойgroupingBy(Function, Collector)
, groupingByConcurrent(Function)
, groupingByConcurrent(Function, Supplier, Collector)
public static <T,K,D,M extends ConcurrentMap<K,D>> Collector<T,M> groupingByConcurrent(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,D> downstream)
Collector
реализация каскадной "группы" работой на входных элементах типа T
, группировка элементов согласно функции классификации, и затем выполнения работы сокращения на значениях, связанных с данным ключом, используя указанный нисходящий поток Collector
. ConcurrentMap
произведенный Коллектором создается с предоставленной функцией фабрики. Это - a concurrent
и unordered
Коллектор.
Функция классификации отображает элементы на некоторый ключевой тип K
. Нисходящий коллектор работает на элементах типа T
и приводит к результату типа D
. Получающийся коллектор производит a Map<K, D>
.
Например, чтобы вычислить набор фамилий людей в каждом городе, где названия города сортируются:
ConcurrentMap<City, Set<String>> namesByCity
= people.stream().collect(groupingBy(Person::getCity, ConcurrentSkipListMap::new,
mapping(Person::getLastName, toSet())));
T
- тип входных элементовK
- тип ключейD
- тип результата нисходящего сокращенияM
- тип получающегося ConcurrentMap
classifier
- функция классификатора отображение входных элементов к ключамdownstream
- a Collector
реализация нисходящего сокращенияmapFactory
- функция, которая, когда вызвано, производит новое пустое ConcurrentMap
из требуемого типаCollector
реализация каскадной группы - работойgroupingByConcurrent(Function)
, groupingByConcurrent(Function, Collector)
, groupingBy(Function, Supplier, Collector)
public static <T> Collector<T,Map<Boolean,List<T>>> partitioningBy(Predicate<? super T> predicate)
Collector
который делит входные элементы согласно a Predicate
, и организует их в a Map<Boolean, List<T>>
. Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности Map
возвращенный.T
- тип входных элементовpredicate
- предикат используется для того, чтобы классифицировать входные элементыCollector
реализация работы разделенияpartitioningBy(Predicate, Collector)
public static <T,D> Collector<T,Map<Boolean,D>> partitioningBy(Predicate<? super T> predicate, Collector<? super T,D> downstream)
Collector
который делит входные элементы согласно a Predicate
, уменьшает значения в каждом разделе согласно другому Collector
, и организует их в a Map<Boolean, D>
чьи значения являются результатом нисходящего сокращения. Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности Map
возвращенный.
T
- тип входных элементовD
- тип результата нисходящего сокращенияpredicate
- предикат используется для того, чтобы классифицировать входные элементыdownstream
- a Collector
реализация нисходящего сокращенияCollector
реализация каскадной работы разделенияpartitioningBy(Predicate)
public static <T,K,U> Collector<T,Map<K,U>> toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
Map
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), IllegalStateException
бросается, когда работа набора выполняется. Если у отображенных ключей могут быть копии, использовать toMap(Function, Function, BinaryOperator)
вместо этого.java.util.function.Function#identity()
может быть полезным. Например, следующее производит a Map
отображение студентов к их среднему баллу:
Map<Student, Double> studentToGPA
students.stream().collect(toMap(Functions.identity(),
student -> computeGPA(student)));
И следующее производит a Map
отображение уникального идентификатора студентам:
Map<String, Student> studentIdToStudent
students.stream().collect(toMap(Student::getId,
Functions.identity());
T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиkeyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияCollector
который собирает элементы в a Map
чьи ключи и значения являются результатом применения отображающихся функций к входным элементамtoMap(Function, Function, BinaryOperator)
, toMap(Function, Function, BinaryOperator, Supplier)
, toConcurrentMap(Function, Function)
public static <T,K,U> Collector<T,Map<K,U>> toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
Map
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), функция построения карты ценности применяется к каждому равному элементу, и результаты объединяются, используя обеспеченную функцию слияния.throwingMerger()
, firstWinsMerger()
, и lastWinsMerger()
, та реализация общая политика, или можно реализовать пользовательские политики легко. Например, если у Вас есть поток Person
, и Вы хотите произвести "телефонную книгу", отображающую имя к адресу, но возможно, что у двух человек есть то же самое имя, можно сделать следующим образом к корректно соглашениям с этими коллизиями, и произвести a Map
отображение имен к связанному списку адресов:
Map<String, String> phoneBook
people.stream().collect(toMap(Person::getName,
Person::getAddress,
(s, a) -> s + ", " + a));
T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиkeyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияmergeFunction
- функция слияния, используемая, чтобы разрешить коллизии между значениями, связанными с тем же самым ключом, как предоставлено к Map.merge(Object, Object, BiFunction)
Collector
который собирает элементы в a Map
чьи ключи являются результатом применения ключевой функции отображения к входным элементам, и чьи значения являются результатом применения функции построения карты ценности ко всем входным элементам, равным ключу и объединению их использующий функцию слиянияtoMap(Function, Function)
, toMap(Function, Function, BinaryOperator, Supplier)
, toConcurrentMap(Function, Function, BinaryOperator)
public static <T,K,U,M extends Map<K,U>> Collector<T,M> toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
Map
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), функция построения карты ценности применяется к каждому равному элементу, и результаты объединяются, используя обеспеченную функцию слияния. Map
создается обеспеченной функцией поставщика.T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиM
- тип получающегося Map
keyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияmergeFunction
- функция слияния, используемая, чтобы разрешить коллизии между значениями, связанными с тем же самым ключом, как предоставлено к Map.merge(Object, Object, BiFunction)
mapSupplier
- функция, которая возвращает новое, пустое Map
в который будут вставлены результатыCollector
который собирает элементы в a Map
чьи ключи являются результатом применения ключевой функции отображения к входным элементам, и чьи значения являются результатом применения функции построения карты ценности ко всем входным элементам, равным ключу и объединению их использующий функцию слиянияtoMap(Function, Function)
, toMap(Function, Function, BinaryOperator)
, toConcurrentMap(Function, Function, BinaryOperator, Supplier)
public static <T,K,U> Collector<T,ConcurrentMap<K,U>> toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
ConcurrentMap
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), IllegalStateException
бросается, когда работа набора выполняется. Если у отображенных ключей могут быть копии, использовать toConcurrentMap(Function, Function, BinaryOperator)
вместо этого.java.util.function.Function#identity()
может быть полезным. Например, следующее производит a Map
отображение студентов к их среднему баллу:
Map<Student, Double> studentToGPA
students.stream().collect(toMap(Functions.identity(),
student -> computeGPA(student)));
И следующее производит a Map
отображение уникального идентификатора студентам:
Map<String, Student> studentIdToStudent
students.stream().collect(toConcurrentMap(Student::getId,
Functions.identity());
Это - a concurrent
и unordered
Коллектор.
T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиkeyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияCollector
который собирает элементы в a ConcurrentMap
чьи ключи являются результатом применения ключевой функции отображения к входным элементам, и чьи значения являются результатом применения функции построения карты ценности к входным элементамtoMap(Function, Function)
, toConcurrentMap(Function, Function, BinaryOperator)
, toConcurrentMap(Function, Function, BinaryOperator, Supplier)
public static <T,K,U> Collector<T,ConcurrentMap<K,U>> toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
ConcurrentMap
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), функция построения карты ценности применяется к каждому равному элементу, и результаты объединяются, используя обеспеченную функцию слияния.throwingMerger()
, firstWinsMerger()
, и lastWinsMerger()
, та реализация общая политика, или можно реализовать пользовательские политики легко. Например, если у Вас есть поток Person
, и Вы хотите произвести "телефонную книгу", отображающую имя к адресу, но возможно, что у двух человек есть то же самое имя, можно сделать следующим образом к корректно соглашениям с этими коллизиями, и произвести a Map
отображение имен к связанному списку адресов:
Map<String, String> phoneBook
people.stream().collect(toConcurrentMap(Person::getName,
Person::getAddress,
(s, a) -> s + ", " + a));
Это - a concurrent
и unordered
Коллектор.
T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиkeyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияmergeFunction
- функция слияния, используемая, чтобы разрешить коллизии между значениями, связанными с тем же самым ключом, как предоставлено к Map.merge(Object, Object, BiFunction)
Collector
который собирает элементы в a ConcurrentMap
чьи ключи являются результатом применения ключевой функции отображения к входным элементам, и чьи значения являются результатом применения функции построения карты ценности ко всем входным элементам, равным ключу и объединению их использующий функцию слиянияtoConcurrentMap(Function, Function)
, toConcurrentMap(Function, Function, BinaryOperator, Supplier)
, toMap(Function, Function, BinaryOperator)
public static <T,K,U,M extends ConcurrentMap<K,U>> Collector<T,M> toConcurrentMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
ConcurrentMap
чьи ключи и значения являются результатом применения отображающихся функций к входным элементам. Если отображенные ключи содержат копии (согласно Object.equals(Object)
), функция построения карты ценности применяется к каждому равному элементу, и результаты объединяются, используя обеспеченную функцию слияния. ConcurrentMap
создается обеспеченной функцией поставщика. Это - a concurrent
и unordered
Коллектор.
T
- тип входных элементовK
- выходной тип ключевой функции отображенияU
- выходной тип функции построения карты ценностиM
- тип получающегося ConcurrentMap
keyMapper
- отображающаяся функция, чтобы произвести ключиvalueMapper
- отображающаяся функция, чтобы произвести значенияmergeFunction
- функция слияния, используемая, чтобы разрешить коллизии между значениями, связанными с тем же самым ключом, как предоставлено к Map.merge(Object, Object, BiFunction)
mapSupplier
- функция, которая возвращает новое, пустое Map
в который будут вставлены результатыCollector
который собирает элементы в a ConcurrentMap
чьи ключи являются результатом применения ключевой функции отображения к входным элементам, и чьи значения являются результатом применения функции построения карты ценности ко всем входным элементам, равным ключу и объединению их использующий функцию слиянияtoConcurrentMap(Function, Function)
, toConcurrentMap(Function, Function, BinaryOperator)
, toMap(Function, Function, BinaryOperator, Supplier)
public static <T> Collector<T,IntSummaryStatistics> toIntSummaryStatistics(ToIntFunction<? super T> mapper)
Collector
который применяется int
- производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений.T
- тип входных элементовmapper
- отображающаяся функция, чтобы примениться к каждому элементуCollector
реализация сокращения сводной статистикиtoDoubleSummaryStatistics(ToDoubleFunction)
, toLongSummaryStatistics(ToLongFunction)
public static <T> Collector<T,LongSummaryStatistics> toLongSummaryStatistics(ToLongFunction<? super T> mapper)
Collector
который применяется long
- производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений.T
- тип входных элементовmapper
- отображающаяся функция, чтобы примениться к каждому элементуCollector
реализация сокращения сводной статистикиtoDoubleSummaryStatistics(ToDoubleFunction)
, toIntSummaryStatistics(ToIntFunction)
public static <T> Collector<T,DoubleSummaryStatistics> toDoubleSummaryStatistics(ToDoubleFunction<? super T> mapper)
Collector
который применяется double
- производящий отображающий функцию на каждый входной элемент, и сводную статистику возвратов для получающихся значений.T
- тип входных элементовmapper
- отображающаяся функция, чтобы примениться к каждому элементуCollector
реализация сокращения сводной статистикиtoLongSummaryStatistics(ToLongFunction)
, toIntSummaryStatistics(ToIntFunction)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92