Skype Web SDK не может войти в систему

Из docs

Операции сокращения Операция сокращения (также называемая сгибом) принимает последовательность входных элементов и объединяет их в один итоговый результат повторением применение операции объединения, например, нахождение суммы или максимума набора чисел или накопление элементов в списке. Классы потоков имеют несколько форм общих операций сокращения, называемых reduce () и collect (), а также несколько специализированных редукционных форм, таких как sum (), max () или count ().

Of Конечно, такие операции могут быть легко реализованы как простые последовательные циклы, как в:

int sum = 0;
for (int x : numbers) {
   sum += x;
}

Однако есть веские причины предпочесть операцию уменьшения над мутационным накоплением, таким как приведенное выше. Мало того, что сокращение «более абстрактно» - оно работает как с потоком в целом, а не с отдельными элементами, но правильно построенная операция сокращения по своей сути является параллелизуемой, если функции (функции), используемые для обработки элементов, являются ассоциативными и без гражданства. Например, с учетом потока чисел, для которого мы хотим найти сумму, мы можем написать:

int sum = numbers.stream().reduce(0, (x,y) -> x+y);

или:

int sum = numbers.stream().reduce(0, Integer::sum);

Эти операции восстановления могут безопасно работать в параллельно с почти никакой модификацией:

int sum = numbers.parallelStream().reduce(0, Integer::sum);

Итак, для карты вы использовали бы:

integers.values().stream().mapToInt(i -> i).reduce(0, (x,y) -> x+y);

Или:

integers.values().stream().reduce(0, Integer::sum);

0
задан White hawk 15 January 2019 в 18:14
поделиться