desislava_topuzakova

04. Generic Swap Method Integer

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