Advertisement
MarkoS2900

Blokovska struktura

Feb 10th, 2021
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class BlockContainerTest {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.         int n = scanner.nextInt();
  7.         int size = scanner.nextInt();
  8.         BlockContainer<Integer> integerBC = new BlockContainer<Integer>(size);
  9.         scanner.nextLine();
  10.         Integer lastInteger = null;
  11.         for(int i = 0; i < n; ++i) {
  12.             int element = scanner.nextInt();
  13.             lastInteger = element;
  14.             integerBC.add(element);
  15.         }
  16.         System.out.println("+++++ Integer Block Container +++++");
  17.         System.out.println(integerBC);
  18.         System.out.println("+++++ Removing element +++++");
  19.         integerBC.remove(lastInteger);
  20.         System.out.println("+++++ Sorting container +++++");
  21.         integerBC.sort();
  22.         System.out.println(integerBC);
  23.         BlockContainer<String> stringBC = new BlockContainer<String>(size);
  24.         String lastString = null;
  25.         for(int i = 0; i < n; ++i) {
  26.             String element = scanner.next();
  27.             lastString = element;
  28.             stringBC.add(element);
  29.         }
  30.         System.out.println("+++++ String Block Container +++++");
  31.         System.out.println(stringBC);
  32.         System.out.println("+++++ Removing element +++++");
  33.         stringBC.remove(lastString);
  34.         System.out.println("+++++ Sorting container +++++");
  35.         stringBC.sort();
  36.         System.out.println(stringBC);
  37.     }
  38. }
  39.  
  40. class BlockContainer<T extends Comparable>  {
  41.     int n;
  42.     List<TreeSet<T>> elementi;
  43.  
  44.     public BlockContainer(int n) {
  45.         this.n = n;
  46.         elementi = new ArrayList<>();
  47.     }
  48.     public void add(T a){
  49.         if(elementi.size() == 0){
  50.             TreeSet<T> list = new TreeSet<>();
  51.             list.add(a);
  52.             elementi.add(list);
  53.         }
  54.         else if(elementi.get(elementi.size()-1).size() < n){
  55.             elementi.get(elementi.size() - 1).add(a);
  56.         }
  57.         else {
  58.             TreeSet<T> list = new TreeSet<>();
  59.             list.add(a);
  60.             elementi.add(list);
  61.         }
  62.     }
  63.     public boolean remove(T a) {
  64.         boolean izbirshan = elementi.get(elementi.size()-1).remove(a);
  65.         if(elementi.get(elementi.size()-1).size() == 0)
  66.             elementi.remove(elementi.size()-1);
  67.         return izbirshan;
  68.     }
  69.     public void sort(){
  70.         List<T> elements = new ArrayList<>();
  71.         for (TreeSet<T> t : elementi) {
  72.             elements.addAll(t);
  73.         }
  74.  
  75.         Collections.sort(elements,(o1, o2) -> o1.compareTo(o2));
  76.         elementi.clear();
  77.         for(T x : elements){
  78.             this.add(x);
  79.         }
  80.     }
  81.  
  82.     @Override
  83.     public String toString() {
  84.         StringBuilder sb = new StringBuilder();
  85.         for (int i = 0; i < elementi.size(); i++) {
  86.             sb.append("[");
  87.             for (T x : elementi.get(i)) {
  88.                 if (elementi.get(i).last().equals(x)) {
  89.                     sb.append(x);
  90.                 }
  91.                 else
  92.                     sb.append(x + ", ");
  93.             }
  94.             if (i == elementi.size() - 1)
  95.                 sb.append("]");
  96.             else
  97.                 sb.append("],");
  98.         }
  99.         return sb.toString();
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement