Advertisement
Didart

Sort Even Numbers

Jan 30th, 2023
536
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.06 KB | None | 0 0
  1. package FunctionalProgramming5;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.*;
  7. import java.util.function.Consumer;
  8. import java.util.function.Function;
  9. import java.util.function.Predicate;
  10.  
  11. public class SortEvenNumbers {
  12.     public static void main(String[] args) throws IOException {
  13.         Scanner scanner = new Scanner(System.in);
  14.  
  15.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  16.  
  17.         List<Integer> evenNumbers = new ArrayList<>();
  18.  
  19.         String text = reader.readLine();
  20.         Function<String, int[]> parseInput = input -> {
  21.             String[] tokens = input.split(", ");
  22.             int[] result = new int[tokens.length];
  23.             for (int i = 0; i < result.length; i++) {
  24.                 result[i] = Integer.parseInt(tokens[i]);
  25.             }
  26.             return result;
  27.         };
  28.  
  29.         int[] numbers = parseInput.apply(text);
  30.  
  31.         Predicate<Integer> isEvenNumber = num -> num % 2 == 0;
  32.  
  33.         Function<int[], List<Integer>> fillWithEvenNumbers = integerArray -> {
  34.             List<Integer> result = new ArrayList<>();
  35.             for (int i = 0; i < integerArray.length; i++) {
  36.                 if (isEvenNumber.test(integerArray[i])) {
  37.                     result.add(integerArray[i]);
  38.                 }
  39.             }
  40.             return result;
  41.         };
  42.  
  43.         Consumer<List<Integer>> printList = listOfIntegers -> {
  44.             StringBuilder sb = new StringBuilder();
  45.             Iterator<Integer> iterator = listOfIntegers.iterator();
  46.             while (iterator.hasNext()) {
  47.                 sb.append(iterator.next());
  48.                 if (iterator.hasNext()) {
  49.                     sb.append(", ");
  50.                 }
  51.             }
  52.  
  53.             System.out.println(sb);
  54.         };
  55.  
  56.         evenNumbers = fillWithEvenNumbers.apply(numbers);
  57.         printList.accept(evenNumbers);
  58.         evenNumbers.sort((n1, n2) -> n1.compareTo(n2));
  59.         printList.accept(evenNumbers);
  60.  
  61.         reader.close();
  62.        
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement