Advertisement
TwiNNeR

Генерички бројач

Dec 8th, 2015
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.12 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  
  6.  
  7.  
  8. Да се имплементира GenericCounter<T> за броење на исти елементи. Класата треба да имплементира два методи:
  9.  
  10. void count(T element) - метод кој прима елемент за броење
  11. @Override String toString() - кој враќа стринг репрезентација на изброените елементи[елемент]|[повторување на знакот * онолку пати колку што е избројан дадениот елемент]
  12. Точното решение треба да има мемориска комплексност О(n) и комплексност О(n) за броење на елементите (линеарно пребарување)
  13.  
  14.  
  15.  
  16.  */
  17.  
  18.  
  19. /**
  20.  *
  21.  * @author 143035
  22.  */
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import java.util.Scanner;
  26.  
  27. /**
  28.  *
  29.  */
  30. public class GenericCounterTest {
  31.   public static void main(String[] args) {
  32.     Scanner scanner = new Scanner(System.in);
  33.     int n = scanner.nextInt();
  34.     GenericCounter<Integer> counterInt = new GenericCounter<Integer>();
  35.     scanner.nextLine();
  36.     for (int i = 0; i < n; ++i) {
  37.       int x = scanner.nextInt();
  38.       counterInt.count(x);
  39.     }
  40.     System.out.println("=====INTEGERS=====");
  41.     System.out.println(counterInt);
  42.     n = scanner.nextInt();
  43.     scanner.nextLine();
  44.     GenericCounter<String> counterString = new GenericCounter<String>();
  45.     for (int i = 0; i < n; i++) {
  46.       String s = scanner.nextLine();
  47.       counterString.count(s);
  48.     }
  49.     System.out.println("=====STRINGS=====");
  50.     System.out.println(counterString);
  51.     n = scanner.nextInt();
  52.     scanner.nextLine();
  53.     GenericCounter<Float> counterFloat = new GenericCounter<Float>();
  54.     for (int i = 0; i < n; i++) {
  55.       float f = scanner.nextFloat();
  56.       counterFloat.count(f);
  57.     }
  58.     System.out.println("=====FLOATS=====");
  59.     System.out.println(counterFloat);
  60.     scanner.close();
  61.   }
  62. }
  63.  
  64.  
  65. // vashiot kod ovde ////////////////////////
  66. class GenericCounter<T> {
  67.     ArrayList<Items> elem;
  68.    
  69.     GenericCounter() {
  70.         elem = new ArrayList<>();
  71.     }
  72.    
  73.     public void count(T element) {
  74.         boolean b = false;
  75.         for (Items<T> e : elem) {
  76.             if (e.item.equals(element)) {
  77.                 e.addPovt();
  78.                 b = true;
  79.             }
  80.         }
  81.         if (!b) {
  82.             elem.add(new Items(element));
  83.         }
  84.     }
  85.    
  86.     @Override
  87.     public String toString() {
  88.         StringBuilder r = new StringBuilder();
  89.         for (Items<T> e : elem) {
  90.             r.append(String.format("%s|%s\n", e.item.toString(), e.povtoruvanja));
  91.         }
  92.         return r.toString();
  93.     }
  94. }
  95.  
  96. class Items<T> {
  97.     T item;
  98.     String povtoruvanja;
  99.     Items(T item) {
  100.        this.item = item;
  101.        povtoruvanja = "*";
  102.     }
  103.     void addPovt() {
  104.         povtoruvanja += "*";
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement