Advertisement
desislava_topuzakova

Untitled

Feb 10th, 2023
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  1. package Lists_Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class ListOperations_04 {
  9. public static void main(String[] args) {
  10. Scanner scanner = new Scanner(System.in);
  11.  
  12. List<Integer> numbers = Arrays.stream(scanner.nextLine() //"1 23 29 18 43 21 20"
  13. .split(" ")) //["1", "23", "29", "18", "43", "21", "20"]
  14. .map(Integer::parseInt) //[1, 23, 29, 18, 43, 21, 20]
  15. .collect(Collectors.toList()); //{1, 23, 29, 18, 43, 21, 20}
  16.  
  17. String command = scanner.nextLine();
  18. while (!command.equals("End")) {
  19. if (command.contains("Add")) {
  20. //command = "Add 5".split(" ") -> ["Add", "5"][1] -> "5" -> parse -> 5
  21. int numberToAdd = Integer.parseInt(command.split("\\s+")[1]);
  22. numbers.add(numberToAdd);
  23. } else if (command.contains("Insert")) {
  24. //command = "Insert 120 1".split(" ") -> ["Insert", "120", "1"]
  25. String [] commandParts = command.split("\\s+"); //["Insert", "120", "1"]
  26. int numberToInsert = Integer.parseInt(commandParts[1]); //"120" -> parse -> 120
  27. int index = Integer.parseInt(commandParts[2]); //"1" -> parse -> 1
  28.  
  29. //искам да вмъкна на индекс (index) числото (numberToInsert)
  30. //1. проверявам в списъка съществува ли такъв индекс
  31. //валиден индеск: от първия (0) до последния (дължина - 1) индекс
  32. if (index >= 0 && index <= numbers.size() - 1) {
  33. //валиден индекс
  34. //2. вмъквам числото на дадения индекс
  35. numbers.add(index, numberToInsert);
  36. } else {
  37. //невалиден индекс
  38. System.out.println("Invalid index");
  39. }
  40. } else if (command.contains("Remove")) {
  41. //command = "Remove 4".split(" ") -> ["Remove", "4"]
  42. int indexForRemove = Integer.parseInt(command.split("\\s+")[1]); //"4" -> parse -> 4
  43. //премахвам елемента на дадения индекс
  44. //1. проверявам в списъка съществува ли такъв индекс
  45. if (indexForRemove >= 0 && indexForRemove <= numbers.size() - 1) {
  46. //валиден
  47. //2. премахвам числото от дадения индекс
  48. numbers.remove(indexForRemove);
  49. } else {
  50. //невалиден индекс
  51. System.out.println("Invalid index");
  52. }
  53. } else if (command.contains("Shift left")) {
  54. //command = "Shift left 5".split(" ") -> ["Shift", "left", "5"]
  55. int countShiftLeft = Integer.parseInt(command.split("\\s+")[2]); //"5" -> parse -> 5
  56. //повтаряме нещо -> count на брой пъти
  57. for (int time = 1; time <= countShiftLeft; time++) {
  58. //first number becomes last
  59. //numbers = {1, 23, 29, 18, 43, 21, 20}
  60. //1. взимам кое е първото число
  61. int firstNumber = numbers.get(0); //0 индекс -> първото число в списъка
  62. //2. премахвам първото число от списъка -> {23, 29, 18, 43, 21, 20}
  63. numbers.remove(0);
  64. //3. добавям го накрая на списъка -> {23, 29, 18, 43, 21, 20, 1}
  65. numbers.add(firstNumber);
  66. }
  67. } else if (command.contains("Shift right")) {
  68. //command = "Shift right 4".split(" ") -> ["Shift", "right", "4"]
  69. int countShiftRight = Integer.parseInt(command.split("\\s+")[2]); //"4" -> 4
  70. for (int time = 1; time <= countShiftRight; time++) {
  71. //last number becomes first times
  72. //numbers = {23, 29, 18, 43, 21, 20, 123}
  73. //1. взимам последното число в спиъска
  74. int lastNumber = numbers.get(numbers.size() - 1);
  75. //2. премахвам последното число от списъка -> numbers = {23, 29, 18, 43, 21, 20}
  76. numbers.remove(numbers.size() - 1);
  77. //3. вмъквам последното число на първо място -> numbers = {123, 23, 29, 18, 43, 21, 20}
  78. numbers.add(0, lastNumber);
  79. }
  80. }
  81. command = scanner.nextLine();
  82. }
  83.  
  84. //1 начин -> с цикъл
  85. /* for (int number : numbers) {
  86. System.out.print(number + " ");
  87. }*/
  88.  
  89. //2 начин -> без цикъл
  90. System.out.println(numbers.toString() //"[23, 29, 18, 43, 21, 20]"
  91. .replace("[", "") //"23, 29, 18, 43, 21, 20]"
  92. .replace("]", "") //"23, 29, 18, 43, 21, 20"
  93. .replace(",", "") //"23 29 18 43 21 20"
  94. );
  95.  
  96.  
  97.  
  98. }
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement