desislava_topuzakova

03. Generic Swap Method String

Oct 18th, 2020
286
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package GenericSwapMethodString_03;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class GenericBox<T> {
  7.  
  8.     private List<T> box;
  9.  
  10.  
  11.     public GenericBox() {
  12.         this.box = new ArrayList<>();
  13.  
  14.     }
  15.  
  16.     public void add(T element) {
  17.         this.box.add(element);
  18.     }
  19.  
  20.     public void swap(int index1, int index2) {
  21.         T firstElement = this.box.get(index1);
  22.         T secondElement = this.box.get(index2);
  23.         box.add(index2, firstElement);
  24.         box.remove(index2 + 1);
  25.         box.add(index1, secondElement);
  26.         box.remove(index1 + 1);
  27.  
  28.     }
  29.  
  30.     @Override
  31.     public String toString() {
  32.         StringBuilder sb = new StringBuilder();
  33.  
  34.         for (T t : box) {
  35.             sb.append(String.format("%s: %s", t.getClass(), t)).append(System.lineSeparator());
  36.  
  37.         }
  38.  
  39.         return sb.toString().replaceAll("class ", "");
  40.     }
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47. package GenericSwapMethodString_03;
  48.  
  49. import java.util.Scanner;
  50.  
  51. public class Main {
  52.     public static void main(String[] args) {
  53.         Scanner scanner = new Scanner(System.in);
  54.  
  55.         int n  = Integer.parseInt(scanner.nextLine());
  56.         GenericBox<String> box = new GenericBox<>();
  57.         String line;
  58.         for (int i = 0; i < n; i++) {
  59.             line = scanner.nextLine();
  60.             box.add(line);
  61.         }
  62.  
  63.         String[]elementsToSwap = scanner.nextLine().split(" ");
  64.  
  65.         box.swap(Integer.parseInt(elementsToSwap[0]),Integer.parseInt(elementsToSwap[1]));
  66.         System.out.println(box);
  67.     }
  68. }
  69.  
RAW Paste Data