Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.74 KB | None | 0 0
  1. package ass.sivakfil.cvi5.task3;
  2.  
  3. import java.util.List;
  4. import java.util.function.BiFunction;
  5. import java.util.function.BinaryOperator;
  6. import java.util.function.Predicate;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.IntStream;
  9.  
  10. public class Task3 {
  11.    
  12.     public static void main(String[] args) {
  13.         List<Integer> numbers = IntStream.range(0, 10).boxed().collect(Collectors.toList());
  14.         System.out.println(sumEvenNumbers(numbers));
  15.         System.out.println(sumOddNumbers(numbers));
  16.         System.out.println(mulEvenNumbers(numbers));
  17.        
  18.         System.out.println(genericAggregate1(numbers, (a,b) -> a+b, (i) -> (i % 2) == 0));
  19.         System.out.println(genericAggregate2(numbers, (a,b) -> a+b, (i) -> (i % 2) == 0));
  20.     }
  21.    
  22.     // possible solution 1
  23.     private static int genericAggregate1(List<Integer> nums, BinaryOperator<Integer> aggregation, Predicate<Integer> filter) {
  24.         return nums.stream()
  25.         .filter(filter)
  26.         .reduce(aggregation)
  27.         .orElse(0);
  28.     }
  29.    
  30.     // possible solution 2
  31.     private static int genericAggregate2(List<Integer> nums, BinaryOperator<Integer> aggregation, Predicate<Integer> filter) {
  32.         int acc = 0;
  33.         for(Integer i : nums) {
  34.             if(filter.test(i)) {
  35.                 acc += aggregation.apply(acc, i);
  36.             }
  37.         }
  38.         return acc;
  39.     }
  40.  
  41.     private static int sumEvenNumbers(List<Integer> numbers) {
  42.         int acc = 0;
  43.         for(int i : numbers) {
  44.             if(i % 2 == 0) {
  45.                 acc += i;
  46.             }
  47.         }
  48.         return acc;
  49.     }
  50.    
  51.     private static int sumOddNumbers(List<Integer> numbers) {
  52.         int acc = 0;
  53.         for(int i : numbers) {
  54.             if(i % 2 != 0) {
  55.                 acc += i;
  56.             }
  57.         }
  58.         return acc;
  59.     }
  60.    
  61.     private static int mulEvenNumbers(List<Integer> numbers) {
  62.         int acc = 1;
  63.         for(int i : numbers) {
  64.             if(i % 2 == 0) {
  65.                 acc *= i;
  66.             }
  67.         }
  68.         return acc;
  69.     }
  70.    
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement