Advertisement
veronikaaa86

05. List Manipulation Advanced

Oct 13th, 2021
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. package lists;
  2.  
  3. import java.text.DecimalFormat;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Scanner;
  8. import java.util.stream.Collectors;
  9.  
  10. public class P05ListManipulationAdvanced {
  11. public static void main(String[] args) {
  12. Scanner scanner = new Scanner(System.in);
  13.  
  14. List<Integer> numbersList = Arrays
  15. .stream(scanner.nextLine().split(" "))
  16. .map(Integer::parseInt)
  17. .collect(Collectors.toList());
  18.  
  19. String input = scanner.nextLine();
  20. while (!input.equals("end")) {
  21. List<String> commandLine = Arrays.stream(input.split(" ")).collect(Collectors.toList());
  22. String command = commandLine.get(0);
  23.  
  24. switch (command) {
  25. case "Contains":
  26. int number = Integer.parseInt(commandLine.get(1));
  27.  
  28. if (numbersList.contains(number)) {
  29. System.out.println("Yes");
  30. } else {
  31. System.out.println("No such number");
  32. }
  33. break;
  34. case "Print":
  35. String secondCommand = commandLine.get(1);
  36.  
  37. if (secondCommand.equals("even")) {
  38. System.out.println(joinElementsByDelimiter(getEvenNumbers(numbersList), " "));
  39. } else {
  40. System.out.println(joinElementsByDelimiter(getOddNumbers(numbersList), " "));
  41. }
  42. break;
  43. case "Get":
  44. int sum = 0;
  45. for (int i = 0; i < numbersList.size(); i++) {
  46. sum = sum + numbersList.get(i);
  47. }
  48. System.out.println(sum);
  49. break;
  50. case "Filter":
  51. String condition = commandLine.get(1);
  52. int numberCondition = Integer.parseInt(commandLine.get(2));
  53.  
  54. System.out.println(joinElementsByDelimiter(getConditionalNumbers(numbersList, condition, numberCondition), " "));
  55.  
  56. break;
  57. }
  58.  
  59. input = scanner.nextLine();
  60. }
  61. }
  62.  
  63. public static List<Integer> getConditionalNumbers(List<Integer> initList, String condition, int number) {
  64. List<Integer> resultList = new ArrayList<>();
  65.  
  66. for (int i = 0; i < initList.size(); i++) {
  67. int currentNum = initList.get(i);
  68.  
  69. if (condition.equals("<")) {
  70. if (currentNum < number) {
  71. resultList.add(currentNum);
  72. }
  73. } else if (condition.equals(">")) {
  74. if (currentNum > number) {
  75. resultList.add(currentNum);
  76. }
  77. } else if (condition.equals(">=")) {
  78. if (currentNum >= number) {
  79. resultList.add(currentNum);
  80. }
  81. } else if (condition.equals("<=")) {
  82. if (currentNum <= number) {
  83. resultList.add(currentNum);
  84. }
  85. }
  86. }
  87.  
  88. return resultList;
  89. }
  90.  
  91. public static List<Integer> getEvenNumbers(List<Integer> initList) {
  92. List<Integer> evenNums = new ArrayList<>();
  93. for (int i = 0; i < initList.size(); i++) {
  94. if (initList.get(i) % 2 == 0) {
  95. evenNums.add(initList.get(i));
  96. }
  97. }
  98.  
  99. return evenNums;
  100. }
  101.  
  102. public static List<Integer> getOddNumbers(List<Integer> initList) {
  103. List<Integer> oddNums = new ArrayList<>();
  104. for (int i = 0; i < initList.size(); i++) {
  105. if (initList.get(i) % 2 != 0) {
  106. oddNums.add(initList.get(i));
  107. }
  108. }
  109.  
  110. return oddNums;
  111. }
  112.  
  113. public static String joinElementsByDelimiter(List<Integer> items, String delimiter) {
  114. String output = "";
  115. for (Integer item : items) {
  116. DecimalFormat df = new DecimalFormat("0.#");
  117. String numDf = df.format(item) + delimiter;
  118.  
  119. output += numDf;
  120. }
  121.  
  122. return output;
  123. }
  124. }
  125.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement