Avatar billede BrianM Nybegynder
26. april 2009 - 16:07 Der er 10 kommentarer

Arraylist med index

hej alle.

jeg er ved at lave et program med en Arrayliste  hvori der er 10 Strings. disse strings har fået et index nummer "fra 1-10"  der under har jeg så 3 math.random  funktioner som skulle hver kunne vælge en af de 10 stringe og ligge dem i en System.out.prinln();

nogen der kan forklare mig hvordan jeg gør det?
Avatar billede riversen Nybegynder
26. april 2009 - 16:47 #1
hvad er problemet da? Umiddelbart er du på rette vej.
Avatar billede BrianM Nybegynder
26. april 2009 - 16:53 #2
mit problem er at jeg ikke kan finde måden hvor på jeg vælger en af index numrende.      jeg for en tal værdi fra Math.random,  men hvordan fortæller jeg array listen at det tal er index værdien. så jeg kan få den pågældende String vist?
Avatar billede arne_v Ekspert
26. april 2009 - 16:56 #3
(Array)List har altid indexes startende med 0.

Hvis du vil bruge indexes startende med 1 er du nødt til at bruge (Hash)Map.
Avatar billede arne_v Ekspert
26. april 2009 - 16:57 #4
Syntax mæssigt er det lige ud af landevejen: data.get(index)
Avatar billede riversen Nybegynder
26. april 2009 - 17:02 #5
ArrayList myList = new ArrayList( 10 );
        for( int i = 0; i < 10; i++ )
            myList.add( i, "this is string " + (i+1) );

        System.out.println( myList.get( (int) (Math.random() * 10) ) );
        System.out.println( myList.get( (int) (Math.random() * 10) ) );
        System.out.println( myList.get( (int) (Math.random() * 10) ) );
Avatar billede arne_v Ekspert
26. april 2009 - 17:14 #6
List<String> myList = new ArrayList<String>();
        for( int i = 0; i < 10; i++ )
            myList.add( "this is string " + (i+1) );

eller

  Map<Integer, String> myMap = new HashMap<Integer,String>();
        for( int i = 0; i < 10; i++ )
            myMap.add(i, "this is string " + (i+1) );
Avatar billede BrianM Nybegynder
26. april 2009 - 17:15 #7
de gør ikke noget at det starter ved 0, 

dvs at hvis jeg har 3 forskellige stringe
vil det se sådan ud :

        myList.add( 0, "this is string " + (0+1) );
        myList.add( 1, "this is string2 " + (1+1) );
        myList.add( 2, "this is string3 " + (2+1) );
                                            og hvad skal det i den sidste parentes efter krydset gør ?
Avatar billede riversen Nybegynder
26. april 2009 - 17:21 #8
det har ikke noget formål udover at flette et tal på tekststrengen, hvilket du så har valgt at gøre manuelt samtidig
Avatar billede BrianM Nybegynder
26. april 2009 - 17:25 #9
Mange tak for hjælpen,  det fungere!
Avatar billede riversen Nybegynder
26. april 2009 - 17:54 #10
velbekom
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