Avatar billede hejhejhej Nybegynder
14. november 2003 - 16:16 Der er 10 kommentarer og
1 løsning

Opret array i et andet array. Kan man det?

Jeg har brug for et array hvor hvert "felt" array[i] indeholder en liste af strings, fx {hej,jh,lk}. Men er det muligt at lave et nyt array inde i et andet?
fx
String[] array = new String[6]
på plads array[i] skal der oprettes et nyt array indeholdende fx {hej,jh,lk}.
Avatar billede mikkelbm Nybegynder
14. november 2003 - 16:23 #1
Du kan lave et Object-array som indeholder andre arrays...

Object[] arrays = new Object[3];
String[] tekst1 = {"HEJ", "FARVEL"};
String[] tekst2 = {"HEJ", "FARVEL"};
String[] tekst3 = {"HEJ", "FARVEL"};

arrays[0] = tekst1;   
arrays[1] = tekst2;   
arrays[2] = tekst3;
Avatar billede arne_v Ekspert
14. november 2003 - 16:24 #2
Brug et 2 dimensionelt array.

I Java er det nemlig et array af arrays (og de "inderste" behøver ikke
være lige lange).
Avatar billede mikkelbm Nybegynder
14. november 2003 - 16:24 #3
Du kan også vælge at bruge en ArrayList, som kan indeholde objekter - og som er dynamisk...

ArrayList list = new ArrayList();
String[] tekst1 = {"HEJ", "FARVEL"};
String[] tekst2 = {"HEJ", "FARVEL"};
String[] tekst3 = {"HEJ", "FARVEL"};

list.add(tekst1);
list.add(tekst2);
list.add(tekst3);
Avatar billede arne_v Ekspert
14. november 2003 - 16:30 #4
Eksempel:

public class TwoDim {
    public static void main(String[] args) {
        String[][] s = new String[3][];
        for(int i = 0; i < s.length; i++) {
            s[i] = new String[i+1];
            for(int j = 0; j < s[i].length; j++) {
                s[i][j] = Integer.toString(i+j);
            }
        }
        for(int i = 0; i < s.length; i++) {
            for(int j = 0; j < s[i].length; j++) {
                System.out.print(" " + s[i][j]);
            }
            System.out.println();
        }
    }
}
Avatar billede hejhejhej Nybegynder
14. november 2003 - 17:03 #5
oki. Hvis jeg laver det på flg måde
Object[] arrays = new Object[3];
arrays[2] = new String[4];

hvordan kan jeg så sætte det første felt i det indre array til fx "hej"
og hvordan kan jeg genneløbe det indre array for at se om det indeholder "hej"
Avatar billede arne_v Ekspert
14. november 2003 - 17:57 #6
Som det her:

public class ObjArr {
    public static void main(String[] args) {
        Object[] s = new String[3][];
        for(int i = 0; i < s.length; i++) {
            s[i] = new String[i+1];
            for(int j = 0; j < ((String[])s[i]).length; j++) {
                ((String[])s[i])[j] = Integer.toString(i+j);
            }
        }
        for(int i = 0; i < s.length; i++) {
            for(int j = 0; j < ((String[])s[i]).length; j++) {
                System.out.print(" " + ((String[])s[i])[j]);
            }
            System.out.println();
        }
    }
}
Avatar billede arne_v Ekspert
14. november 2003 - 17:57 #7
Men jeg synes at 2D array har en pænere syntax.
Avatar billede arne_v Ekspert
14. november 2003 - 18:22 #8
gennemløb = for løkker
Avatar billede arne_v Ekspert
30. november 2003 - 23:14 #9
Lukke tid ?
Avatar billede mikkelbm Nybegynder
08. januar 2004 - 13:32 #10
Hvad fandt du frem til???
Avatar billede hejhejhej Nybegynder
15. februar 2004 - 10:50 #11
sry. Har desværre glemt at lukke. jeg fandt frem til en løsning vha arne_v's forslag
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