Sep 22, 2008

Koristan primjer OBAVEZBNO POKUSATI URADITI !

Primjer sadrzi listu, iteratore, genericki tip i rad sa karakterima!!!

Demografski podaci o gradovima prikazuju se stringom opsteg oblika:

: - (); - (); ... - ();

Jedan primer tog stringa je:

Broj stanovnika u gradovima: Podgorica - 200000 (pretezno bela rasa); Cape Town - 2000000 (uglavnom tamnoputi); New York - 14000000 (mesovito);

Koriscenjem interfejsa Iterator, napisati program koji u dve ArrayList kolekcije
izdvaja iz tog stringa samo nazive gradova i podatke o broju stanovnika u njima.
Pretpostaviti da je ulazni string uvek sintaksno ispravan
(tj. zadovoljava prikazani opsti oblik, svi brojevi su ispravno napisani, itd.).

Pomocu gornjeg konkretnog primara ulaznog stringa, prikazati rad programa.

Resenje zadatka se nalazi na sajtu za upload projekata!

5 comments:

Djordje said...

Hej momci.
Vidite, ili Dzenan tebi da pitam ako ovo citas.
Ja rijesio ovaj zadatak bez gledanje na odgovora, ali imam problem, da sam malo sbunjen.

Ja ne umijem da razlikujem na zadatak kada treba da koristim genericku klasu za genericke parametre ili kada treba da koristim obicnu klasu uz javine konteinere.

Ja na primijer koj sam uradio koristiosam obicnu klasu ali nisam implementirao Iterator, jel to ok?

Ja to pitam jer ne znam u koje slucajeve ja imam potrebu da redefinisem te metode iz interfeisa Iterator a kada mi ne treba.

Ne znam jel me razumijete sto pitam.


Evo kod koj sam napisao. On radi to sto se trazi, odvaja na dva razlicita lista y pokazujem to na ekran pomocu iterator() ali ipak mislim da je ovaj kod sto sam napisao malo grub, sto bi mislite evo na sledeci komentar ostavljam kod ali popravitega malo one mijesto gdje treba da pise genericki tip String jer ovaj Blog ne dozvoljava da kucam one simbole vece i manje jer misli da su to nevalidne html tagove.
Evo na sledeci komentar Kod samo one GenerickeParametre popravite

Djordje said...

---------------------------------
//EVO KOD

package paket;

import java.util.ArrayList;
import java.util.Iterator;

public class Demo {

private String s;
private ArrayList \String\ gradove;
private ArrayList \String\ populacija;

public Demo(String unos) {

s = unos;
String[] sSplited = null;//Initialization?

for (int i = 0; i < s.length(); i++) {
sSplited = s.split(",");
}

gradove = new ArrayList\String\();

gradove.add(sSplited[0]);

populacija = new ArrayList\String\();

String i = sSplited[1];
populacija.add(i);
}

public void printAll() {
Iterator it = gradove.iterator();

while(it.hasNext()) {
System.out.println(it.next());
}
//Reset iterator na drugu listu!
it = populacija.iterator();

while(it.hasNext()) {
System.out.println(it.next());
}
}
}
////////KLASA MAIN ///////////////

package paket;

public class Main {

public static void main(String[] args) {

Demo d = new Demo("Podgorica , 200000, (pretezno bela rasa");

Demo d2 = new Demo("Cape Town , 2000000, (uglavnom tamnoputi)");

Demo d3 = new Demo("New York , 14000000, (mesovito)");

d.printAll();
System.out.println();
d2.printAll();
System.out.println();
d3.printAll();
}
}

urla said...

Ovo ti je ovako dobro, ali kad bi se trazilo da se prave posebni objekti za svaki grad.

Sustina je da se pravi samo jedan objekat, a u taj jedan objekat da postoji lista (tipa String npr.) sa gradovima i da se kroz tu listu iteriras i kad naidjes na potrebne podatke(grad i broj stanovnika).
Detaljnije: ti si napravio 3 objekta demo i zadao si sve parametre koje si predhodno unio u konstruktor (Ime grada, broj stanovnika i rasu) a od tebe se trazi da napravish jedan objekat demo,a da u demo napravish listu gdje cesh da napishesh neki takst sa podacima o gradovima ovako: "Podgorica , 200000, (pretezno bela rasa Cape Town , 2000000, (uglavnom tamnoputi New York , 14000000, (mesovito") e sad nad tom listom trebash da idesh iteratorom i da hvatash podatke koji ti trebaju i samo njih da shtampas.

Djordje said...

Aha kapiram.
Mozda bi onda bilo dobro da mi ona klasa Demo bude genericka sa 3 parametrizovanih tipa i da ima jedan metod koj cuva, u nekom Stringu ulazne parametre. A onamo gdje napravim objekat ovoj klasi da pozivam tu metodu tako da bi sve podatke se cuvali u jedan isti objekat

urla said...

Ne klasa demo da je generichka nego da ima generichku listu odredjenog tipa, a poshto ti se u zadatku trazi naziv grada i broj stanovnika vjerovatno ce to biti 2 array liste sa razlichitog tipa, jedna za ime grada jedna za stanovnistvo.(String integer)

I kao sto si rekao pravicesh metodu jednu u koju cesh da uneses String i onda kad napravis objekat te klase pozivas tu metodu. Koja ce da ti omoguci ispisivanje samo gradova i broj stanovnika.