Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.stream.Collectors;
- public class BlockContainerTest {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- int size = scanner.nextInt();
- BlockContainer<Integer> integerBC = new BlockContainer<Integer>(size);
- scanner.nextLine();
- Integer lastInteger = null;
- for(int i = 0; i < n; ++i) {
- int element = scanner.nextInt();
- lastInteger = element;
- integerBC.add(element);
- }
- System.out.println("+++++ Integer Block Container +++++");
- System.out.println(integerBC);
- System.out.println("+++++ Removing element +++++");
- integerBC.remove(lastInteger);
- System.out.println("+++++ Sorting container +++++");
- integerBC.sort();
- System.out.println(integerBC);
- BlockContainer<String> stringBC = new BlockContainer<String>(size);
- String lastString = null;
- for(int i = 0; i < n; ++i) {
- String element = scanner.next();
- lastString = element;
- stringBC.add(element);
- }
- System.out.println("+++++ String Block Container +++++");
- System.out.println(stringBC);
- System.out.println("+++++ Removing element +++++");
- stringBC.remove(lastString);
- System.out.println("+++++ Sorting container +++++");
- stringBC.sort();
- System.out.println(stringBC);
- }
- }
- //
- class BlockContainer<T extends Comparable<T>>
- {
- List<Set<T>> elements;
- int n;
- public BlockContainer(int n)
- {
- this.n = n;
- elements = new ArrayList<Set<T>>();
- }
- public void add(T a)
- {
- if(elements.size() == 0)
- {
- Set<T> s = new TreeSet<>();
- s.add(a);
- elements.add(s);
- }
- else
- {
- Set<T> s = elements.get(elements.size()-1);
- if(s.size()<n)
- {
- s.add(a);
- }
- else
- {
- s = new TreeSet<T>();
- s.add(a);
- elements.add(s);
- }
- }
- }
- public boolean remove(T a)
- {
- boolean res = false;
- if(elements.size()>0)
- {
- Set<T> s = elements.get(elements.size()-1);
- res = s.remove(a);
- if(s.size()==0)
- elements.remove(elements.size()-1);
- }
- return res;
- }
- public void sort()
- {
- List<T> l = elements.stream()
- .flatMap(Collection::stream)
- .sorted()
- .collect(Collectors.toList());
- elements = new ArrayList<Set<T>>();
- for(T e : l)
- {
- add(e);
- }
- }
- @Override
- public String toString() {
- // TODO Auto-generated method stub
- StringBuilder sb = new StringBuilder();
- for(Set<T> s: elements)
- {
- sb.append("[");
- for(T t : s)
- {
- sb.append(String.format("%s, ", t.toString()));
- }
- sb.delete(sb.toString().length()-2, sb.toString().length());
- sb.append("],");
- }
- sb.deleteCharAt(sb.toString().length()-1);
- return sb.toString();
- }
- }
Add Comment
Please, Sign In to add comment