[ markoz @ 26.06.2007. 14:50 ] @
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
[ bgd2500 @ 26.06.2007. 15:19 ] @
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.
[ Au197/79 @ 26.06.2007. 15:28 ] @
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.
[ Black @ 27.06.2007. 09:10 ] @
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.

[ Java Beograd @ 27.06.2007. 13:43 ] @
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.
[ markoz @ 27.06.2007. 15:10 ] @
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
:)
[ Au197/79 @ 28.06.2007. 10:13 ] @
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).