2012-05-25 13 views
6

Chcę to zrobić dynamicznie w Javie. Wiem, jak wstawiać wartości w tablicy jednowymiarowej. Jestem nieco zdezorientowany w dwuwymiarowej tablicy.Jak programowo wstawiać wartości w tablicy dwuwymiarowej?

static final String shades[][] = { 


// Shades of grey 
    { 
    "lightgrey", 
    "dimgray", 
    "sgi gray 92", 
    }, 
// Shades of blue 
    { 
    "dodgerblue 2", 
    "steelblue 2", 
    "powderblue", 
    }, 
// Shades of yellow 
    { 
    "yellow 1", 
    "gold 1", 
    "darkgoldenrod 1", 
    }, 
// Shades of red 
    { 
    "indianred 1", 
    "firebrick 1", 
    "maroon", 
    } 
}; 

Odpowiedz

7
String[][] shades = new String[intSize][intSize]; 
// print array in rectangular form 
for (int r=0; r<shades.length; r++) { 
    for (int c=0; c<shades[r].length; c++) { 
     shades[r][c]="hello";//your value 
    } 
} 
3
String[][] shades = new String[4][3]; 
for(int i = 0; i <= 4; i++) 
    { 
     for(int y = 0; y <= 3; y++) 
     { 
     shades[i][y] = value; 
     } 
    } 

to powinno działać

1

Nie można "dodać" wartości do tablicy jako długość tablicy jest niezmienna. Możesz ustawić wartości w określonych pozycjach tablicy.

Jeśli wiesz, jak to zrobić z jednowymiarowymi tablicami, to wiesz, jak to zrobić z tablicami n-wymiarowymi: W Javie nie ma n-wymiarowych tablic, tylko tablice tablic (tablic ...) .

Ale można połączyć operatora indeksu dla dostępu do elementu tablicy.

String[][] x = new String[2][]; 
x[0] = new String[1]; 
x[1] = new String[2]; 

x[0][0] = "a1"; 
    // No x[0][1] available 
x[1][0] = "b1"; 
x[1][1] = "b2"; 

Uwaga: wymiary macierzy podrzędnych nie muszą być zgodne.

0

Pomyśl o tym jako o tablicy szyku.

Jeśli to zrobisz, str [x] [y], to jest tablica o długości x, gdzie każdy element z kolei zawiera tablicę o długości y. W java nie jest konieczne, aby drugi wymiar miał taką samą długość. więc dla x = i można mieć y = M oraz x = j można mieć y = n

Na to oświadczenie wygląda

String [] [] test = new String [4] [] ; test [0] = nowy ciąg [3]; test [1] = nowy ciąg [2];

etc ..

-1

this is output of this program

Scanner s=new Scanner (System.in); 
int row, elem, col; 

Systm.out.println("Enter Element to insert"); 
elem = s.nextInt(); 
System.out.println("Enter row"); 
row=s.nextInt(); 
System.out.println("Enter row"); 
col=s.nextInt(); 
for (int c=row-1; c < row; c++) 
{ 
    for (d = col-1 ; d < col ; d++) 
     array[c][d] = elem; 
} 
for(c = 0; c < size; c++) 
{ 
    for (d = 0 ; d < size ; d++) 
     System.out.print(array[c] [d] +" "); 
    System.out.println(); 
} 
+0

Witamy, należy wyjaśnić, co jest interesujące w tej odpowiedzi. Ale oczywiście wstawi się 'elem' do ostatniej komórki z powodu' int c = row -1' zamiast 'int c = 0' (to samo dla' d'). – AxelH

+0

A gdzie jest "rozmiar" przechodzący z pętli do "macierzy kwadratowej"? – AxelH

Powiązane problemy