Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.387 pregleda

Najnovija ↓

Vector jedinstvenih vrednosti?! 26.06.2007. u 15:50 · pre 235 meseci #1
Da upravo mi treba reshenje za vektor jedinstveni vrednosti. U vektor upisujem objekte klase
abc (=new abc(inta, int,b,int c)) i hocu da ne upisujem vishe puta isti objekat da bi lakse posle
manipulisao tim vektorom jer moze da se desi da imam po 100000 tih vrednosti a one se ustvaari non stop ponavljaju ...

razmisljao sam da radim proveru gde bih uporedjivao svaki clan vectora sa objektom koji planiram da upishem,ali to traje predugo...
Any idea?

poz Marko
Potpis
WI FI MI
Re: Vector jedinstvenih vrednosti?! 26.06.2007. u 16:19 · pre 235 meseci #2
Mozes da implementiras metod equals za klasu abc
Code:

public boolean equals (Object o) {
    if (!(o instanceof Abc))
        return false;
    Abc abc = (Abc) o;
    return (abc.getA() == a && abc.getB() == b && abc.getC() == c);
}

pa sa "contains(...)" metodom pre upisa proveri postojanje u vektoru.
Re: Vector jedinstvenih vrednosti?! 26.06.2007. u 16:28 · pre 235 meseci #3
To je matematički rečeno skup ili u prevodu na javu: java.util.Set interfejs. Pogledaj java dokumentaciju: http://java.sun.com/javase/6/docs/api/java/util/Set.html i odaberi odgovarajuću implementaciju. Klasa čiji će se objekti čuvati će morati da implementira neke metode npr: equals, hashCode... Imaš to lepo objašnjeno u knjizi Thinking in Java koju možeš skinuti besplatno.
Potpis
Bolje džaba ležat nego džaba radit.
Re: Vector jedinstvenih vrednosti?! 27.06.2007. u 10:10 · pre 235 meseci #4
Kao sto rece kolega Au197/79, najbolje ti je da koristis neki od Java Set-ova, na primer HashSet. Ali ces u tom slucaju morati da redefinises equals i hashcode metode. Jedino sto bih za uputstva kako to najbolje izvesti preporucio jednu drugu knjigu: Effective Java Programming Language Guide, by Joshua Bloch. Probaj da je skines sa neta, imas tu sve lepo objasnjeno.

I jos jedna stvar, ako ti je potrebno da elementi kolekcije budu indeksirani, onda je bolje da koristis ArrayList i svaki put vrsis proveru pomocu metode contains, ali ces i u tom slucaju morati da redefinises equals metodu.

Re: Vector jedinstvenih vrednosti?! 27.06.2007. u 14:43 · pre 235 meseci #5
Umesto u vektor upisuješ u hash table, sa vrenošću kao ključem. Posle, ako si 'teo da manipulišeš, iz hashtable prepišeš u vector.
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Re: Vector jedinstvenih vrednosti?! 27.06.2007. u 16:10 · pre 235 meseci #6
Probao sam sa implementiranjem equals metode i mislim da sasvim zadovoljavajuce radi.
Da li mislis da bi sa hash bilo brze ili bolje iz nekog razloga?

U svakom slucaju hvala BGD2500
:)
Potpis
WI FI MI
Re: Vector jedinstvenih vrednosti?! 28.06.2007. u 11:13 · pre 235 meseci #7
Sve zavisi koliko će tih različitih elemenata postojati. Ako ih je malo onda je svejedno, ako ih je mnogo tada set-ovi i mape (koje mogu biti HashSet, HashMap i TreeSet, TreeMap) brže rade pretraživanje. Imaš u Thinking in Java tabelu performansi pa možeš uporediti. U toj knjizi u 3. izdanju (besplatnom) imaš i opis kako treba pravilno implementirati metode da bi sve funkcionisalo, i to je autor upravo uzeto iz knjige Joshue Blocha koju kolega Black pominje (a i ja je preporučujem za čitanje).
Potpis
Bolje džaba ležat nego džaba radit.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme