Advertisement
veronikaaa86

05. List Manipulation Advanced

Jun 15th, 2022
485
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import java.util.stream.Collectors;
  6.  
  7. public class P05ListManipulationAdvanced {
  8. public static void main(String[] args) {
  9. Scanner scanner = new Scanner(System.in);
  10.  
  11. List<Integer> numberList = Arrays
  12. .stream(scanner.nextLine().split(" "))
  13. .map(Integer::parseInt)
  14. .collect(Collectors.toList());
  15.  
  16. // Contains {number} – check if the list contains the number. If yes print "Yes", otherwise print "No such number"
  17. // Print even – print all the numbers that are even separated by a space
  18. // Print odd – print all the numbers that are odd separated by a space
  19. // Get sum – print the sum of all the numbers
  20. // Filter {condition} {number} – print all the numbers that fulfill that condition. The condition will be either '<', '>', ">=", "<="
  21.  
  22. String input = scanner.nextLine();
  23. while (!input.equals("end")) {
  24. List<String> commandLine = Arrays.stream(input.split(" ")).collect(Collectors.toList());
  25. String command = commandLine.get(0);
  26.  
  27. switch (command) {
  28. case "Contains":
  29. int numContains = Integer.parseInt(commandLine.get(1));
  30.  
  31. if (numberList.contains(numContains)) {
  32. System.out.println("Yes");
  33. } else {
  34. System.out.println("No such number");
  35. }
  36. break;
  37. case "Print":
  38. String secondCommand = commandLine.get(1);
  39. if (secondCommand.equals("even")) {
  40. List<Integer> evenNumList = getEvenNumbers(numberList);
  41. System.out.println(evenNumList.toString().replaceAll("[\\[\\],]", ""));
  42. } else {
  43. List<Integer> oddNumList = getOddNumbers(numberList);
  44. System.out.println(oddNumList.toString().replaceAll("[\\[\\],]", ""));
  45. }
  46. break;
  47. case "Get":
  48. int sum = 0;
  49. for (int i = 0; i < numberList.size(); i++) {
  50. sum = sum + numberList.get(i);
  51. }
  52. System.out.println(sum);
  53. break;
  54. case "Filter":
  55. String condition = commandLine.get(1);
  56. int number = Integer.parseInt(commandLine.get(2));
  57.  
  58. List<Integer> conditionalNumList = getConditionNumbers(numberList, condition, number);
  59. System.out.println(conditionalNumList.toString().replaceAll("[\\[\\],]", ""));
  60. break;
  61. }
  62.  
  63.  
  64. input = scanner.nextLine();
  65. }
  66. }
  67.  
  68. //Filter >= 43
  69. public static List<Integer> getConditionNumbers(List<Integer> initList, String condition, int number) {
  70. List<Integer> resultList = new ArrayList<>();
  71. for (int i = 0; i < initList.size(); i++) {
  72. int currentNum = initList.get(i);
  73.  
  74. if (condition.equals("<")) {
  75. if (currentNum < number) {
  76. resultList.add(currentNum);
  77. }
  78. } else if (condition.equals(">")) {
  79. if (currentNum > number) {
  80. resultList.add(currentNum);
  81. }
  82. } else if (condition.equals("<=")) {
  83. if (currentNum <= number) {
  84. resultList.add(currentNum);
  85. }
  86. } else if (condition.equals(">=")) {
  87. if (currentNum >= number) {
  88. resultList.add(currentNum);
  89. }
  90. }
  91. }
  92. return resultList;
  93. }
  94.  
  95. public static List<Integer> getEvenNumbers(List<Integer> initList) {
  96. List<Integer> evenNumbersList = new ArrayList<>();
  97. for (int i = 0; i < initList.size(); i++) {
  98. int currentItem = initList.get(i);
  99.  
  100. if (currentItem % 2 == 0) {
  101. evenNumbersList.add(currentItem);
  102. }
  103. }
  104. return evenNumbersList;
  105. }
  106.  
  107. public static List<Integer> getOddNumbers(List<Integer> initList) {
  108. List<Integer> oddNumbersList = new ArrayList<>();
  109. for (int i = 0; i < initList.size(); i++) {
  110. int currentItem = initList.get(i);
  111.  
  112. if (currentItem % 2 != 0) {
  113. oddNumbersList.add(currentItem);
  114. }
  115. }
  116. return oddNumbersList;
  117. }
  118. }
  119.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement