Avatar billede johandysatan Novice
09. december 2002 - 19:38 Der er 12 kommentarer og
1 løsning

HashMaps

Hej, vi har en metode, som piller en String ud af vektor v ("" + v.get(0)), hvorefter den associerer denne string med vektor v i et HashMap.
Vektor v indeholder  først et navn, så adresse, så by etc., og vi vil jo gerne have at navnet er associeret med med hele "adressevektoren".

...alt sammen meget godt!

PROBLEMET er at hver gang der tilføjes en ny adresse, associeres alle HashMappets elementer med det samme (det nye) navn.
Metoden ser således ud:

public Vector opretKunstner(Vector v)
{
String name = "" + v.get(0); kunstnerAdresseMap.put(name,v);  dataGemmer.opdaterKunstnerAdresseMap(kunstnerAdresseMap);
}

Hvad kan vi dog gøre!
Avatar billede johandysatan Novice
09. december 2002 - 19:40 #1
her er metoden igen lidt nemmere at læse:

public Vector opretKunstner(Vector v)
    {
    String name = "" + v.get(0);         kunstnerAdresseMap.put(name,v);              dataGemmer.opdaterKunstnerAdresseMap
(kunstnerAdresseMap);                        return lavKunstnerVector();
    }
Avatar billede johandysatan Novice
09. december 2002 - 19:43 #2
argh! det var jeg ikke specielt god til!
Avatar billede disky Nybegynder
09. december 2002 - 20:11 #3
hvis din HashMap hedder map og din Vector vector og dit Navn navn så siger du

map.put(navn,vector);
Avatar billede johandysatan Novice
09. december 2002 - 21:22 #4
Vi bruger put(*,*) metoden, men problemet er at hver gang metoden kaldes er der ny data i vector v som skal gemmes under den string som står på plads 1 i v
Avatar billede disky Nybegynder
09. december 2002 - 21:36 #5
Jeg tror ikke helt jeg er med på hvad i ønsker.

Men så må i hente den med vector.get(1); //hvis du mener plads 1 og ikke plads 0

Derefter rette i vectoren, og putte den tilbage på plads.
Avatar billede johandysatan Novice
09. december 2002 - 21:42 #6
Vores data ligger i v som skal være en midlertidig databeholder, problemet er at v bliver fyldt med ny data hver gang metoden kaldes, og at alle "navne" i HashMappet så bliver associeret med det samme data, det som var i den sidst oprettede vector v.
Avatar billede johandysatan Novice
09. december 2002 - 21:46 #7
Vi bruger hashmappet som gemfunktion. Inputdata sendes i en vector, som så skal arkiveres med navn fra placering 0 i vectoren.
Avatar billede disky Nybegynder
09. december 2002 - 22:04 #8
map.put((String)vector.get(0),vector);

Virker det ?
Avatar billede johandysatan Novice
09. december 2002 - 22:38 #9
vi har resigneret for idag, afprøver dit forslag i morgen, tak for hjælpen indtil videre!
Avatar billede johandysatan Novice
10. december 2002 - 11:21 #10
map.put((String)vector.get(0),vector);
er jo det samme som det vi allerede gør!

public Vector opretKunstner(Vector v)
    {
    String name = "" + v.get(0);
    kunstnerAdresseMap.put(name,v);
    dataGemmer.opdaterKunstnerAdresseMap(kunstnerAdresseMap);
    return lavKunstnerVector();
    }
Avatar billede disky Nybegynder
10. december 2002 - 11:29 #11
prøv at udskriv hele hashmappen og vectorerne for at se hvad der sker.
Avatar billede conrad Nybegynder
10. december 2002 - 12:18 #12
hvad gør jeres lavKunstnerVector()?
Det kunne evt være fordi i ikke får clonet al jeres data.
Avatar billede johandysatan Novice
11. december 2002 - 16:54 #13
jeg prøvede lidt af hvert, og pludselig virkede det vi oprindeligt havde lavet???
Det forekommer mig at JAVA til tider fungerer med en høj grad af tilfældighed.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester