Advertisement
lameski

Blokova Struktura

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