» »

[Java] Shranjevanje vrsto razredov v List

[Java] Shranjevanje vrsto razredov v List

Beezgetz ::

Živijo SloTech,

Sem svež v javi, imam pa par let začetniških izkušenj s c#.

Recimo, da imam aplikacijo, v katero vnašam podatke o metih, konkretno številko meta in dolžino meta, recimo Met 1, 6 metrov.
Te vnose prikazujem v jTextArea. Poljubno lahko iz jTextArea izberem določen met ter ga uredim ali izbrišem.

No, v c# obstaja struct, ki je 'kao' razred, in ki sem ga imel za shranjevanje posameznega meta. Druga stvar, ki sem jo imel, je bila List, kjer sem shranjeval mete (struct) v indeksnem redu. Tako sem lahko izpisoval podatke o metu, ter jih poljubno urejal ali brisal.

Do zdaj sem ugotovil, da v Javi ni struct ukaza. Tako da moram delat z razredom, ki ga lahko podam v neki list, in tako zapolnim list, ki ga lahko uporabljam. No, tu se mi je malo ustavilo. Razred sem naredil, imam pa problem, kako naj shranim vrsto razredov?


Upam, da nisem preveč zakompliciral.

Hvala, Beezgetz

rgv45vg4t335 ::

List mojList = new ArrayList();
mojList.add(mojR1);
mojList.add(mojR2);
...

ArrayList je fajn, ker je hkrati array in list (kdo bi si mislil:)). Lahko dostopaš sekvenčno (.next() prek iteratorja) ali naključno (.get(123) ). List je samo interface, ga ne moreš samega po sebi instancirati.
MSI K9A2 Platinum@260MHz, Athlon X2 4850e@3GHz, 4GB RAM@1000MHz
Radeon HD 4850

moowy123 ::

To je samo 1 izmed ogromno moznih moznosti. Poglej si tudi malo hash tabele, Vector ( ki je zelo podoben kot list array ) class, lahko tudi kako svojo "pametno" podatkovno strukturo napises.... Skratka domisljija ti je edina ovira :).

rgv45vg4t335 ::

MSI K9A2 Platinum@260MHz, Athlon X2 4850e@3GHz, 4GB RAM@1000MHz
Radeon HD 4850

Beezgetz ::

Pozdravljena!

Ok, torej, sem probal tvojo kodo vnest in pogojno dela. No tako, ko vstavim breakpoint, lahko v Local Variables vidim, da obstajajo vsi vnosi. Toda ne znam pa jih priklicat. probal sem marsikaj, tisti link o kontejnerjih je fajn, sam da ta 'strokovna angleščina' men ne pride do živega.

Bernard, kako pa iz mojList potegnem recimo iz drugega meta dolžino, od petega meta pa ime meta?

V pričakovanju odgovora bom še malo pogledal te kontejnerje, mogoče se kaj utrne...

Hvala za pomoč ter lep pozdrav, Beezgetz

morbo ::

ArrayList<Met> mojList = new ArrayList<Met>();
mojList.add(new Met());
float dolzina = mojList.get(0).getDolzina(); // getDolzina() je metoda razreda Met

Tisto v zlomljenih oklepajih pove da kontejner ArrayList vsebuje predmete razreda Met, namesto splošnih predmetov Object (keyword: java generics)

Beezgetz ::

To mi deli, expreso!

Ej, jst sem se ustavil pri .get(i); O, kakšno teslo sem.
Točno to metodo sem iskal, da mi da spremenljivko ven.

Ok, zdaj bom se zahvalil vsem ki ste mi pomagali sestavit kodo - HVALA!!!

Se vidimo v naslednji temi, Beezgetz


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Integer ali int za List

Oddelek: Programiranje
142089 (1604) noraguta
»

Rekurzija v javi z ArrayList

Oddelek: Programiranje
81467 (1310) marjan_h
»

Java - sortiranje

Oddelek: Programiranje
81091 (877) rrejc
»

java dedovanje

Oddelek: Programiranje
51263 (1109) xsenon
»

c# kako v prvi IEnumerable addati samo "Accaptable" tipe iz drugega IEnumerabla

Oddelek: Programiranje
51052 (976) commissar

Več podobnih tem