Novo

Forum kao aplikacija na telefonu

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

  • 11 odgovora
  • 4.702 pregleda

Najnovija ↓

HashTable, ArrayList 21.01.2003. u 20:09 · pre 289 meseci #1
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).
Potpis
Bez Muje nema struje
Re: HashTable, ArrayList 21.01.2003. u 20:36 · pre 289 meseci #2
Kako misliš da je ključ Object? Ne vidim smisao toga. Možeš li da pokažeš na primeru šta si to uradio?
Potpis
IOCC
Re: HashTable, ArrayList 21.01.2003. u 21:00 · pre 289 meseci #3
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.
Potpis
Bez Muje nema struje
Re: HashTable, ArrayList 21.01.2003. u 21:46 · pre 289 meseci #4
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.
Potpis
dotnet
Re: HashTable, ArrayList 21.01.2003. u 22:09 · pre 289 meseci #5
hm...

nisam hteo skrenuti s puta ali izgleda da cu morati i sprogramirati svoj HashTable
Potpis
Bez Muje nema struje
Re: HashTable, ArrayList 22.01.2003. u 18:30 · pre 289 meseci #6
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...
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: HashTable, ArrayList 22.01.2003. u 19:07 · pre 289 meseci #7
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.
Potpis
IOCC
Re: HashTable, ArrayList 22.01.2003. u 21:19 · pre 289 meseci #9
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.

Potpis
IOCC
Re: HashTable, ArrayList 22.01.2003. u 21:39 · pre 289 meseci #10
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
Potpis
Bez Muje nema struje
Re: HashTable, ArrayList 23.01.2003. u 01:09 · pre 289 meseci #11
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 ;)
Potpis
blogče :: unescaped beta
  »
go-paste extenzija
  »
reč dana: backup
  »
bočne koalicije
Re: HashTable, ArrayList 23.01.2003. u 02:41 · pre 289 meseci #12
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"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme