Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Chipi333

    csendes tag

    válasz stevve #3226 üzenetére

    Ahogy látom, ha ömlesztve van egy csomó adatom (mondjuk milliós nagyságrendben néztem) és nem érdekel a rendezhetőség, csak ki-be akarok olvasni és gyorsan elérni, akkor jó és tényleg gyors, de egyébként IList, ha rendezett kell és ha úgyis iterálni kell.

    Most C# konkrétumot nem tudok mondai, de ha rendezettség és gyors random elérés is kell, arra vannak olyan adatszerkezetek amik egy rendezett struktúrában tárolják az adatokat (pl vmilyen fa), és emellett tartanak egy hash táblát is hozzá. Javában biztosan van ilyen, és hát gondolom a .net frameworkből sem maradt ki :)

  • drkbl

    őstag

    válasz stevve #3226 üzenetére

    Nem igazi válasz, inkább csak ismereteim összefoglalása :)

    Pontosan :) A generikusok legnagyobb előnye a boxing/unboxing [1][2] elkerülése.

    A hash, mint a linkelt cikk írja, arra jó, hogy komplex kulcsot rövidít. Pl. tárolni kell 1000 nagyságrendű embert, kulcs név+születés helye+születés ideje+anyja neve, akkor megfelelő, az adott tartományban ismétlődést nem adó hash függvénnyel memória spórolható, és/vagy a keresés nagyban gyorsítható. Pl. egy adatrögzítő View saját magán belül ellenőrizheti a véletlen ismétlődést.

    A hash függvény viszont adhatja ugyanazt az eredményt különböző kulcsokra, ezért kezelni kell a hash ütközést (amúgy nem túl régen kénytelenek voltak kiadni egy biztonsági frissítést az ütközéskezelés időigénye DoS lehetőség miatt a keretrendszerhez). A HashTable és a Dictionary más-más módszert használ erre, ez is lehet szempont a választáshoz.

Új hozzászólás Aktív témák