|
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 - тип входных параметров функции слиянияIllegalStateExceptionfirstWinsMerger(), 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 - тип получающегося CollectioncollectionFactory - 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 Setpublic 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>> чьи ключи являются значениями, следующими из применения функции классификации к входным элементам, и чьи соответствующие значения Lists содержащий входные элементы, которые отображаются на связанный ключ под функцией классификации.
Нет никаких гарантий на типе, переменчивости, сериализуемости, или потокобезопасности 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 - тип получающегося Mapclassifier - функция классификатора отображение входных элементов к ключам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>> чьи ключи являются значениями, следующими из применения функции классификации к входным элементам, и чьи соответствующие значения Lists содержащий входные элементы, которые отображаются на связанный ключ под функцией классификации.
Нет никаких гарантий на типе, переменчивости, или сериализуемости 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 - тип получающегося ConcurrentMapclassifier - функция классификатора отображение входных элементов к ключам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 - тип получающегося MapkeyMapper - отображающаяся функция, чтобы произвести ключи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 - тип получающегося ConcurrentMapkeyMapper - отображающаяся функция, чтобы произвести ключи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