2012-02-16 8 views
11

Nigdy wcześniej tego nie robiłem i nie mogę znaleźć odpowiedzi. To może nie być właściwy typ danych do tego celu, ale chcę tylko przypisać int, a następnie inny int bez pętli for do tablicy 2D, wartości będą rzeczywistymi zwrotami z innej funkcji, ale dla uproszczenia mam tylko używane int i i K, to jak myślałem, że to zrobi, ale nie jest:Jawnie przypisywanie wartości do tablicy 2D?

int contents[][] = new int[2][2]; 
      contents[0][0] = {int i, int k} 
      contents[1][1] = {int i, int k} 
      contents[2][2] = {int i, int k} 

TIA - nie krępuj się mi punkt w kierunku lepszej struktury danych, aby to zrobić, jeśli” m szczeka złe drzewo.

+0

Dlaczego nie wykonasz iteracji na tablicy i nie przypiszesz jej przez wywołanie metody.? dla (...) treści [i] [j] = {xMethod(), yMethod()}; – Juvanis

Odpowiedz

26

Najlepszym sposobem jest prawdopodobnie zadeklarowanie i przypisanie wszystkich wartości naraz. Jak pokazano here. Java automatycznie wykryje rozmiar tablicy i przypisze wartości do polubienia tej tablicy.

int contents[][] = { {1, 2} , { 4, 5} }; 

Alternatywnie, jeśli trzeba zadeklarować tablicę pierwsze, należy pamiętać, że każda contents[0][0] punkty do pojedynczej liczby całkowitej nie tablicą dwóch. Tak, aby uzyskać takie samo zadanie jak wyżej byłoby napisać:

contents[0][0] = 1; 
contents[0][1] = 2; 
contents[1][0] = 4; 
contents[1][1] = 5; 

Wreszcie Należy zauważyć, że 2 przez 2 tablica jest wskaźnik od 0 do 1 nie 0 do 2.

nadzieję, że pomoże.

+0

głosowanie w celu uzyskania najbardziej kompletnej odpowiedzi. –

0

Czy to masz na myśli?

int contents[][] = new int[2][2]; 
contents[0][0] = 1; 
contents[1][1] = 2; 
... 

Umożliwia to indywidualne przypisywanie wartości do elementów w tablicy 2D, po jednym na raz.

Należy również pamiętać, że nie można uzyskać dostępu do indeksu 2 w tablicy o rozmiarze 2. Tablica o rozmiarze 2 ma 2 poprawne oznaczenia (0 i 1). Ogólnie rzecz biorąc, tablica o rozmiarze N ma N poprawnych oznaczeń (0 ... (N-1))

+0

Tak, przepraszam, to był tylko literówka w moim przykładzie. –

4

Czy chcesz przypisać wszystkie wartości w tablicy 2D w momencie deklaracji? Jeśli tak, to działa w następujący sposób:

int[][] contents = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 

Pamiętaj, że tablica 2D w Javie jest naprawdę tablicą tablic, ale Java daje jakąś specjalną składnię jeśli zrobisz to w momencie deklaracji.

2

Chcesz to:

int [][] t = {{1,2,3},{4,5,6}}; 
1

zawartość [0] [0] punktów do jednego, a nie int array of int. Możesz przypisać pojedynczą wartość do określonego indeksu do tablicy.

0
int Array[][] = {{1, 2}, {3, 4}}; 

Ta tablica stworzyła tabelę z 2 * 2 [kolumna wiersza] = 4 pola. W 1 rzędzie i 1 kolumnie 1 jest przechowywany. gdzie jak w 1 wierszu i 2 kolumnie 2 jest przechowywany.

Powiązane problemy