Avatar billede dennish Nybegynder
29. oktober 2007 - 21:54 Der er 11 kommentarer og
1 løsning

hvilke datatype skal jeg bruge

Hejsa

Jeg har følgende problem.
Jeg har nogle værdier jeg gerne vil gemme i en datatype
De ser f.eks således ud:

id    |  værdi
---------------
1    |    Auto
2    |    butik
23    |    Auto


Id er unikt men værdien kan godt gendtages. Jeg vil gerne lavet et  opslag/lookup/forespørgsel på f.eks Auto og få returneret id 1 og 23. Jeg ved godt at jeg kan bruge Hashmap. Men i en Hashmap skal id key være unik og jeg vil jo gerne søge på keys der gendtages.

Er der nogen der kender til en datatype jeg kan bruge i Java ?
Avatar billede arne_v Ekspert
29. oktober 2007 - 22:00 #1
HashMap<String,ArrayList<Integer>>
Avatar billede arne_v Ekspert
29. oktober 2007 - 22:01 #2
saa vil opslag med "auto" give dig en ArrayList med 1 og 23
Avatar billede dennish Nybegynder
29. oktober 2007 - 22:03 #3
Arne jeg må indrømme at jeg aldrig har bruge <> i java. Hvordan er det nu det virker ?
Avatar billede arne_v Ekspert
29. oktober 2007 - 22:10 #4
Med HashMap og ArrayList skal du bruge:

int firstid = ((Integer)((ArrayList)minmap.get(val)).get(ix)).intValue();

Med HashMap<String,ArrayList<Integer>> skal du bruge:

int firstid = minmap.get(val).get(0);

Man undgaar type casts.
Avatar billede arne_v Ekspert
29. oktober 2007 - 22:11 #5
Jeg kan lave et komplet eksemplere hvis noedvendigt.

Senere.
Avatar billede dennish Nybegynder
29. oktober 2007 - 22:14 #6
arne hvad er det nu lige den teknik hedder
Avatar billede dennish Nybegynder
29. oktober 2007 - 22:19 #7
Hvis du gider at lave et eksempel vil jeg være taknemmelig :-)
Avatar billede winners79 Nybegynder
29. oktober 2007 - 22:54 #8
Generics er navnet på at bruge < >
Avatar billede arne_v Ekspert
30. oktober 2007 - 02:38 #9
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapList {
    public static void main(String[] args) {
        Map<String,List<Integer>> m = new HashMap<String,List<Integer>>();
        m.put("auto", new ArrayList<Integer>());
        m.put("butik", new ArrayList<Integer>());
        m.get("auto").add(1);
        m.get("butik").add(2);
        m.get("auto").add(23);
        for(int v : m.get("auto")) {
            System.out.println(v);
        }
    }
}
Avatar billede arne_v Ekspert
30. oktober 2007 - 02:39 #10
(kræver Java 1.5 eller nyere)
Avatar billede dennish Nybegynder
30. oktober 2007 - 12:47 #11
Super Arne smider du ikke et svar.
Avatar billede arne_v Ekspert
30. oktober 2007 - 14:23 #12
ok
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