Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- Да се имплементира GenericCounter<T> за броење на исти елементи. Класата треба да имплементира два методи:
- void count(T element) - метод кој прима елемент за броење
- @Override String toString() - кој враќа стринг репрезентација на изброените елементи[елемент]|[повторување на знакот * онолку пати колку што е избројан дадениот елемент]
- Точното решение треба да има мемориска комплексност О(n) и комплексност О(n) за броење на елементите (линеарно пребарување)
- */
- /**
- *
- * @author 143035
- */
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- /**
- *
- */
- public class GenericCounterTest {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- GenericCounter<Integer> counterInt = new GenericCounter<Integer>();
- scanner.nextLine();
- for (int i = 0; i < n; ++i) {
- int x = scanner.nextInt();
- counterInt.count(x);
- }
- System.out.println("=====INTEGERS=====");
- System.out.println(counterInt);
- n = scanner.nextInt();
- scanner.nextLine();
- GenericCounter<String> counterString = new GenericCounter<String>();
- for (int i = 0; i < n; i++) {
- String s = scanner.nextLine();
- counterString.count(s);
- }
- System.out.println("=====STRINGS=====");
- System.out.println(counterString);
- n = scanner.nextInt();
- scanner.nextLine();
- GenericCounter<Float> counterFloat = new GenericCounter<Float>();
- for (int i = 0; i < n; i++) {
- float f = scanner.nextFloat();
- counterFloat.count(f);
- }
- System.out.println("=====FLOATS=====");
- System.out.println(counterFloat);
- scanner.close();
- }
- }
- // vashiot kod ovde ////////////////////////
- class GenericCounter<T> {
- ArrayList<Items> elem;
- GenericCounter() {
- elem = new ArrayList<>();
- }
- public void count(T element) {
- boolean b = false;
- for (Items<T> e : elem) {
- if (e.item.equals(element)) {
- e.addPovt();
- b = true;
- }
- }
- if (!b) {
- elem.add(new Items(element));
- }
- }
- @Override
- public String toString() {
- StringBuilder r = new StringBuilder();
- for (Items<T> e : elem) {
- r.append(String.format("%s|%s\n", e.item.toString(), e.povtoruvanja));
- }
- return r.toString();
- }
- }
- class Items<T> {
- T item;
- String povtoruvanja;
- Items(T item) {
- this.item = item;
- povtoruvanja = "*";
- }
- void addPovt() {
- povtoruvanja += "*";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement