Avatar billede mads1987 Nybegynder
01. november 2004 - 09:21 Der er 11 kommentarer og
1 løsning

Multidimensionale arrays

Hej, jeg har kastet mig over Java, og er faldet over Multidimensionale arrays, dog synes jeg ikke rigtig at jeg kan få en ordenlig forståelse for det.

Er der en venlig sjæl som vil forklare kort om Multidimensionale arrays, om hvordan man skriver til dem, og henter information fra dem?

Venlig hilsen
Mads
Avatar billede mat Nybegynder
01. november 2004 - 09:27 #1
Det er bare arrays der er "befolket" med arrays. Der er ikke forskel i hvordan du tilgår information i disse, det er stadig almindelig arraynotation.

arr[0][0] <- plads 0 i det array der står på plads 0 i array "arr".
arr[0][1] <- plads 1 i det array der står på plads 0 i array "arr".
arr[1][0] <- plads 0 i det array der står på plads 1 i array "arr".

osv..

Dimensionerne er bare hvor langt du går ind og propper arrays i arrays i arrays osv osv...

..eller noget :)
Avatar billede sovsekoder Nybegynder
01. november 2004 - 09:28 #2
int[][] arr;
erklærer arr, men allokerer ikke arrayet

int[][] arr = new int[10][20];
erklærer arr, og allokerer samtidig

følgende kode går igennem alle elementer i arr og sætter dem til 100:

for (int i=0; i<arr.length; i++) {
    for (int j=0; j<arr[i].length; j++) {
        arr[i][j]=100;
    }
}
Avatar billede mads1987 Nybegynder
01. november 2004 - 09:48 #3
Så hvad skriver jeg hvis jeg skal have plads 0,0 til at indeholde værdien "7" f.eks.?

I et almindeligt Array kan jeg jo bare skrive der ud af:
String produkt[] = {"hej","Hej2"};

Og så skrive "Hej2" ud med :
System.out.println(produkt[1]);
Avatar billede sovsekoder Nybegynder
01. november 2004 - 09:49 #4
String produkt[][] =
{
{"p1", "p2"},
{"p3", "p4"}
};
nu er produkt[0][0] = "p1";
Avatar billede sovsekoder Nybegynder
01. november 2004 - 09:50 #5
så kan man : System.out.println("produkt[0][0] = "+produkt[0][0]);
Avatar billede mads1987 Nybegynder
01. november 2004 - 09:55 #6
Okay! Så har jeg to spørgsmål til for at lige få klarlagt det hele :)

Når jeg så vil tildele [2][2] en værdi skrver jeg så:
String produkt[2][2] = "p22"; ?

Hvad gør jeg når jeg ønsker at kaster hele índholdet af arrayen ud?
Avatar billede fastpoint Nybegynder
01. november 2004 - 10:42 #7
ja sådan skriver du det...

prøv denne til udskrift

for (int i=0; i<arr.length; i++) {
    for (int j=0; j<arr[i].length; j++) {
        System.out.println(arr[i][j]);
    }
}
Avatar billede fastpoint Nybegynder
01. november 2004 - 10:43 #8
for (int i=0; i<produkt.length; i++) {
    for (int j=0; j<produkt[i].length; j++) {
        System.out.println(produkt[i][j]);
    }
}

den her til din kode
Avatar billede sovsekoder Nybegynder
01. november 2004 - 10:46 #9
>Når jeg så vil tildele [2][2] en værdi skrver jeg så:
huske at man starter med index 0,0, så hvis du har et array på [2][2] så er der 9 elementer (bare en reminder):
[0][0], [0][1], [0][2]
[1][0], [1][1], [1][2]
[2][0], [2][1], [2][2]

>Hvad gør jeg når jeg ønsker at kaster hele índholdet af arrayen ud?
lader array'et være, så bliver det garbage collected
Avatar billede mat Nybegynder
01. november 2004 - 10:46 #10
Hvis du vil skrive hele dit 2 dimensionelle array ud med alle subarrays kan du bruge et nested for loop. Altså et for loop der for hver gennemløb løber hver subarray igennem:

for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
// yada yada
}
}

edit: som allerede beskrevet, men nu havde jeg skrevet det...
Avatar billede mads1987 Nybegynder
08. november 2004 - 09:03 #11
Mange tak! Tror sovsekoder må være berettiget til point. Du må gerne svare.
Avatar billede sovsekoder Nybegynder
08. november 2004 - 09:04 #12
svar (tak :D)
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