Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

HashTable, ArrayList

[es] :: .NET :: HashTable, ArrayList

[ Pregleda: 1776 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

y0gie
Slovenija

Član broj: 7615
Poruke: 21
*.dial-up.arnes.si



Profil

icon HashTable, ArrayList21.01.2003. u 19:09

U svoj HashTable stavljam neke stvari koje upotrebljavaju ključ tipa Object. Ali problem je u traženju tih struktura sa Object ključem. Nikako da mi nađe bilo šta.

(Problem je u tome, da imam stvari koje trebaju biti sahranjene sa istim ključem u istom HashTable-u, zato ne mogu upotrebiti integer ili slično; samo object, jer se samo u nekom detajlu razlikuje jedan Object od drugog).
Bez Muje nema struje
21.01.2003. u 19:09 

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



Profil

icon Re: HashTable, ArrayList21.01.2003. u 19:36
Kako misliš da je ključ Object? Ne vidim smisao toga. Možeš li da pokažeš na primeru šta si to uradio?
21.01.2003. u 19:36 

y0gie
Slovenija

Član broj: 7615
Poruke: 21
*.dial-up.arnes.si



Profil

icon Re: HashTable, ArrayList21.01.2003. u 20:00
Laptopovi

public class CTGraphEdgeKey
{
...
}

evo problema:

CTGraphEdgeKey edgeKey = new CTGraphEdgeKey(y,x);
edge = (CTGraphEdge) edges[edgeKey];

ili ako ima drugo rešenje: Da stavljam više CTGraphEdgeKey u isti HashTable sa jednakim ključevima.

Bez Muje nema struje
21.01.2003. u 20:00 

dotnet
Beograd

Član broj: 4344
Poruke: 112
*.verat.net

Jabber: dotnet@elitesecurity.org


Profil

icon Re: HashTable, ArrayList21.01.2003. u 20:46
Pozdrav

Na nacin koji si naveo jedino je moguce da trazis 'Value' sa instancom objekta koju si pre toga upisao u 'Hashtable', znaci kreiras objekat upises u 'Hashtable' i odma nakon toga pretrazujes i dobijes 'Value' za taj objekat. E sad pretpostavljam da bi svoju zamisao mogao da izvedes tako sto bi serializovao svaki objekat koji dodajes za 'Key', ali kao sto Tata kaze 'Ne vidim smisao toga'. Razmisli dal mozes nekako drugacije da organizujes stvar.
dotnet
21.01.2003. u 20:46 

y0gie
Slovenija

Član broj: 7615
Poruke: 21
*.dial-up.arnes.si



Profil

icon Re: HashTable, ArrayList21.01.2003. u 21:09
hm...

nisam hteo skrenuti s puta ali izgleda da cu morati i sprogramirati svoj HashTable
Bez Muje nema struje
21.01.2003. u 21:09 

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


Profil

icon Re: HashTable, ArrayList22.01.2003. u 17:30
verovatno neces morati.

nisam 100% siguran, ali ove kolekcije mi mnogo sumnjivo lice na Java2 kolekcije. ako je implementacja ista, moraces u tvojim objektima samo da implementirash equals() i hashCode() metode.

znaci, recimo:

Code:

public class CTGraphEdgeKey {
    int x, y;
    ...

    public int hashCode() {
        return x*y;
    }

    public boolean equals(Object o) {
        CTGraphEdgeKey k = (CTGraphEdgeKey) o;
        return ((k.x == x) && (k.y == y));
    }
}


znam da ovo mozda nije najsjajnija hash funkcija za tvoj primer (a ni ne znam primer) ali mislim da ce raditi. i ako ti x i y nisu int, uradi round(x*y) recimo...

22.01.2003. u 17:30 

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



Profil

icon Re: HashTable, ArrayList22.01.2003. u 18:07
Ako je to problem, onda treba preklopiti funkcije GetHashCode i Equals. Za GetHashCode je često prihvatljiv hack da se koristi ToString().GetHashCode(), mada je u tvom slučaju verovatno bolje x^y.

Uglavnom, jako nerazumljivo postavljaš pitanja, a i onaj kod mi nije preterano pomogao da shvatim u čemu je problem.
22.01.2003. u 18:07 

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


Profil

icon Re: HashTable, ArrayList22.01.2003. u 18:40
ok. a kako iskoristiti ToString().GetHashCode() kada klasa ima dve promenjive (ili vise) kao ova?

ili sta je najbolje koristiti za realne promenjive?
22.01.2003. u 18:40 

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



Profil

icon Re: HashTable, ArrayList22.01.2003. u 20:19
Funkcija ToString() vraća string koji "opisuje" dato stanje objekta (uglavnom da bi se olakšalo debagovanje) - znači očekivao bih da ispiše koliki su x i y. Znači, kad god su x i y jednaki, stringovi koje vraća ToString() su jednaki, a samim tim i hash koji se dobija od njih. Ovaj sistem se jako često koristi kad performanse nisu preterano bitne.


22.01.2003. u 20:19 

y0gie
Slovenija

Član broj: 7615
Poruke: 21
*.dial-up.arnes.si



Profil

icon Re: HashTable, ArrayList22.01.2003. u 20:39
izvinjavam se za moju nejasnost. Nisam dugo bio u Srbiji pa mi je teško složiti neke pametne rečenice.

evo ..da probam još jednom ako budem sad jasniji:
zombie / DDG: jest skoro isto ko Java

Moj je problem samo u tome, da trebam tražiti po HashTable sa ključem koji je tipa Object -> (CGraphEdgeKey). Ne sa integer, string,...

Probat ču i tvoj prjedlog, da vidim ima li šta na tome.

Hvala
Bez Muje nema struje
22.01.2003. u 20:39 

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


Profil

icon Re: HashTable, ArrayList23.01.2003. u 00:09
dobro, probaj, ali ipak poslusaj i tatu (GetHashCode() i Equals())

DT: ToString() u .net vraca komplenu sadrzinu objekta po defaultu? samo primitiva ili sve? a podobjekti? a nizovi? u kom formatu? da li je ovo bash toliko korisno, ako ima 20tak primitiva u objektu. (mada je verovatno korisnije od javinog default toString() metoda ;)

23.01.2003. u 00:09 

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1770
207.46.137.*



Profil

icon Re: HashTable, ArrayList23.01.2003. u 01:41
ToString uglavnom vraca string koji sadrzi tip promenljive. Postoje izuzetci (primitivni tipovi, stringovi, TextBoxovi, itd.), ali u opstem slucaju dobices nesto tipa "System.Object.TypeXXX"
23.01.2003. u 01:41 

[es] :: .NET :: HashTable, ArrayList

[ Pregleda: 1776 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.