From 74d2e10425849f01f393e7397eeb4acdb2138e8d Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Sat, 9 May 2015 16:18:50 +0200 Subject: [PATCH] Skup, primer sa brojevima i trazenjem duplikata --- kodovi/skup/BrojeviSkup.java | 64 ++++++++++++++++++++++++++++++++++++ kodovi/skup/brojevi.txt | 13 ++++++++ 2 files changed, 77 insertions(+) create mode 100644 kodovi/skup/BrojeviSkup.java create mode 100644 kodovi/skup/brojevi.txt diff --git a/kodovi/skup/BrojeviSkup.java b/kodovi/skup/BrojeviSkup.java new file mode 100644 index 0000000..5d36c71 --- /dev/null +++ b/kodovi/skup/BrojeviSkup.java @@ -0,0 +1,64 @@ +/** + * Zadatak: + * + * Iz fajla “brojevi.txt” učitati brojeve tipa int u skup sa elementima tipa + * Integer. + * + * Prebrojati koliko je bilo brojeva u fajlu, a koliko ih ima u skupu. + * + * Ispisati koliko je bilo duplikata. + * + * Ispisati sadržaj skupa u fajl “brojevi-bez-duplikata.txt”, pri čemu redosled + * nije bitan. + * + */ +public class BrojeviSkup { + + public static Skup ucitajBrojeve(String imefajla) { + Skup rez = new Skup<>(); + + int red; + int br = 0; + while (Svetovid.in(imefajla).hasMore()) { + red = Svetovid.in(imefajla).readInt(); + br++; + rez.ubaci(red); + } + Svetovid.in(imefajla).close(); + + System.out.println("u fajlu je bilo " + br + " redova"); + System.out.println("u skupu ima " + rez.velicina() + " elemenata"); + System.out.println("U fajlu je bilo " + (br - rez.velicina()) + + " duplikata"); + + return rez; + } + + public static void ispisiUFajl(Skup intSkup, String imefajla) { + if (intSkup.velicina() > 0) { + + // koristimo metod da dobijemo niz + // element niza je tacno onog tipa kog je i element skupa + // nije moguce da to bude prost tip kao "int", nego nesto kao "Integer" + Integer[] niz = intSkup.napraviNiz(); + + for (Integer s : niz) { + Svetovid.out(imefajla).println(s); + } + Svetovid.out(imefajla).close(); + } else { + // nema sta da se pise u fajl + Svetovid.out(imefajla).println(); + Svetovid.out(imefajla).close(); + } + } + + public static void main(String[] args) { + Skup brojevi = ucitajBrojeve("brojevi.txt"); + + // u skupu su svi razliciti, znaci da je dosta samo ispisati sadrzaj + // skupa u fajl + ispisiUFajl(brojevi, "brojevi-bez-duplikata.txt"); + } + +} diff --git a/kodovi/skup/brojevi.txt b/kodovi/skup/brojevi.txt new file mode 100644 index 0000000..954f8bf --- /dev/null +++ b/kodovi/skup/brojevi.txt @@ -0,0 +1,13 @@ +1 +2 +4 +4 +5 +8 +11 +4 +2 +73 +12 +11 +6 -- 2.25.1