Advertisement
desislava_topuzakova

09. List Of Predicates

Jan 25th, 2022
1,271
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package FunctionalProgramming_Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.function.BiFunction;
  7. import java.util.stream.Collectors;
  8.  
  9. public class ListOfPredicates_09 {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.         //Function<приема, връща> -> apply
  13.         //Consumer<приема> -> void -> accept
  14.         //Supplier<връща> -> get
  15.         //Predicate<приема> -> връща true / false -> test
  16.         //BiFunction<приема1, приема2, връща> -> apply
  17.         int n = Integer.parseInt(scanner.nextLine());
  18.         List<Integer> numbers = Arrays.stream(scanner.nextLine().split("\\s+"))
  19.                 .map(Integer::parseInt)
  20.                 .collect(Collectors.toList());
  21.         //отпечатваме числата от 1 до n, които се деялт едновременно на всички числа в списъка
  22.         //число, списъка
  23.         // true (числото се дели на всички числа в списъка);
  24.         // false (числото не се дели на всички числа в списъка)
  25.         BiFunction<Integer, List<Integer>, Boolean> isDivisible = ((number, list) -> {
  26.             for (int numberInList : list) {
  27.                 if (number % numberInList != 0) {
  28.                     return false;
  29.                 }
  30.             }
  31.             return true;
  32.         });
  33.  
  34.         //всички числа от 1 до n -> проверка дали се дели на всички числа в списъка -> print числото
  35.         for (int number = 1; number <= n; number++) {
  36.             if (isDivisible.apply(number, numbers)) {
  37.                 System.out.print(number + " ");
  38.             }
  39.         }
  40.     }
  41. }
  42.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement