Java лучшие методы лямбда-выражения - PullRequest
0 голосов
/ 07 февраля 2020

Java операторы потока могут иногда быть очень громоздкими и трудными для отладки. Есть ли рекомендация относительно того, насколько сложным должно быть ваше лямбда-выражение, за которым лучше написать сложный фрагмент кода, состоящий из нескольких операторов?

Например, ниже я наткнулся на два кода оператора для поиска факториала. что было трудно понять:

Stream<Pair> allFactorials = Stream.iterate(
  new Pair(BigInteger.ONE, BigInteger.ONE),
  x -> new Pair(
    x.num.add(BigInteger.ONE),
    x.value.multiply(x.num.add(BigInteger.ONE))));
return allFactorials.filter(
  (x) -> x.num.equals(num)).findAny().get().value;

1 Ответ

3 голосов
/ 07 февраля 2020

Java потоки не являются серебряной пулей, и вам не нужно использовать их везде. Есть много случаев, когда вы могли бы решить проблему, используя стандартный подход for l oop.

Что касается вашего кода. Это хороший пример, когда потоки усложняют код и усложняют его выполнение. понять / сохранить. Но все же есть несколько решений, которые более читабельны.

Взгляните: вычисление факториала с использованием Java 8 IntStream?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...