mitä luokkaa käytän?

nopea tiedonhaku

mulla on iso lista string-objekteja ja haluan että tiedonhaku listasta on nopeaa. en halua käyttää vector enkä arraylist luokkaa, koska siinä jos etsitään alkioita, verrataan merkkijonoja merkki kerrallaan. sen sijaan haluaisin, että kun listaan änkeää uuden olion, se luo automaattisesti siitä hash-koodin ja hakee oliota sen mukaan. hashmap luokassa voi lisätä olioita key-arvon kanssa, mutta haluan sellaisen luokan missä key-arvo syntyy automaattisesti kun olion lisää listaan (eli metodi add(Object o) vain, ja luokka pitää sisäistä hashkoodi-dataa). mikä luokka javassa vastaa parhaiten tarkoitusta?

3

356

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Piru_

      Saat ainakin mitä haluat.

      Teet luokan jonka sisällä on se HashMap. Teet luokkaan metodin add, joka ottaa parametrina objectin. Lasket siitä hashin ja pistät objection hashmappiin hashin toimiessa keynä.

      get-metodissa haet sitten sillä hashillä sieltä mapista.

      Itse hashin vertailu tehdään myös merkki kerrallaan, että nopeushyötyä ei varmaan saa hirveenä lyhyillä stringeillä

      • vastauksen

        aina kun haen javasta jotain sellaista minkä siihen pitäisi ilman muuta kuulua automaattisesti, niin sitä ei löydy :/ eipä tuo ole kummoinen homma ite tehdä, mutta jos implementaatio on jo valmiiksi frameworkissa, käytän ilman muuta sitä (on vain aika laaja ja sekava tuo dokumentaatio).

        no, tässä tapauksessahan hashkoodit on kokonaislukuja, eli kyllä niiden vertailu reippaasti nopeampaa on.


      • fidel1
        vastauksen kirjoitti:

        aina kun haen javasta jotain sellaista minkä siihen pitäisi ilman muuta kuulua automaattisesti, niin sitä ei löydy :/ eipä tuo ole kummoinen homma ite tehdä, mutta jos implementaatio on jo valmiiksi frameworkissa, käytän ilman muuta sitä (on vain aika laaja ja sekava tuo dokumentaatio).

        no, tässä tapauksessahan hashkoodit on kokonaislukuja, eli kyllä niiden vertailu reippaasti nopeampaa on.

        Noh, kannattaisi varmaan kuitenkin lueskella niitä API-dokumentteja vähän tarkemmin, vaikka täältä: http://java.sun.com/j2se/1.5.0/docs/api/

        Sieltä voisi löytyä esim. kiva pikku luokka nimeltä java.util.HashSet, joka toimii juuri niinkuin halusit.

        Silvuplee.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vain vasemmistolaiset rakennemuutokset pelastavat Suomen

      Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot
      Maailman menoa
      40
      3470
    2. Persut huutaa taas: "kato! muslimi!"

      Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe
      Maailman menoa
      13
      2858
    3. Menen nyt koisimaan

      Ja en ehkä palaa tänne. Asia on nyt loppuunkäsitelty ja totuus tuli ilmi
      Ikävä
      28
      2544
    4. Olisiko sinulla

      Jonossa vaihtoehtoja, ehkä
      Ikävä
      42
      2017
    5. Haluaisin rakastaa sinua

      Ja olla sinulle se oikea... Rakastan sinua 💗💗💗
      Ikävä
      18
      2001
    6. onko kaivattusi

      vaarallinen? :D
      Ikävä
      57
      1978
    7. Pieni galluppi

      Mitäs lahjaa odotat joulupukilta.
      Ikävä
      56
      1871
    8. Oletko uhriutuja?

      vaikka itse olet rääkännyt toista ja aiheuttanut ties mitä toiselle.
      Tunteet
      58
      1626
    9. KL: Mari Hynynen avoimena - Jouni-rakkaan ja Joel-pojan välit ovat nämä!

      Mari Hynynen (ent. Perankoski) on naimisissa Jouni Hynysen kanssa. Marilla on edellisestä liitosta yksi lapsi, Joel Vola
      Suomalaiset julkkikset
      10
      1518
    10. Kenet molemmat

      Sä haluat mies?
      Ikävä
      17
      1345
    Aihe