NadezhdaGeorgieva

02 Change List

Nov 18th, 2020
535
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package bg.softuni.javafundamentals;
  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 E02ChangeList {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         List<Integer> numbers = Arrays
  13.                 .stream(scanner.nextLine().split(" "))
  14.                 .map(Integer::parseInt)
  15.                 .collect(Collectors.toList());
  16.  
  17.         while (true){
  18.             String[]tokens = scanner.nextLine().toLowerCase().split("\\s+");
  19.             if (tokens[0].equals("end")){
  20.                 break;
  21.             }
  22.             switch (tokens[0]){
  23.                 case "delete":
  24.                     deleteIfEqual(numbers, tokens[1]);
  25.                     break;
  26.                 case "insert":
  27.                     insert(numbers, tokens);
  28.                     break;
  29.             }
  30.         }
  31.         System.out.println(numbers.toString().replaceAll("[\\[\\],]", ""));
  32.         //numbers.forEach(e -> System.out.print(e + " "));
  33.     }
  34.  
  35.     private static void insert(List<Integer> numbers, String[] tokens) {
  36.         int element = Integer.parseInt(tokens[1]);
  37.         int position = Integer.parseInt(tokens[2]);
  38.         if (position < numbers.size()){
  39.             numbers.add(position, element);
  40.         }
  41.     }
  42.  
  43.     private static void deleteIfEqual(List<Integer> numbers, String token) {
  44.         int givenElement = Integer.parseInt(token);
  45. //        while (numbers.contains(givenElement)){
  46. //            numbers.remove(Integer.valueOf(givenElement));
  47. //        }
  48.         int i = 0;
  49.         while (i < numbers.size()){
  50.             int currentNumber = numbers.get(i);
  51.             if (currentNumber == givenElement){
  52.                 numbers.remove((Integer)currentNumber);
  53.             }else{
  54.                 i++;
  55.             }
  56.         }
  57.     }
  58. }
  59.  
RAW Paste Data