Kahemõõtmelised kogumid

Peale primitiivsete andmetüüpide ja objektide võib Javas järjend või massiiv koosneda ka teistest järjenditest või massiividest. Neid saab kogumisse lisada, sealt lugeda ja muidu neid kasutada täpselt samamoodi kui teisi andmeid.

NB! Järjendisse saab lisada massiive (nt ArrayList<int[]>), aga massivi ei saa lisada järjendeid.

Kahemõõtmeline massiiv

Mitmemõõtmelist massiivi initsialiseerides peab määrama kõikide massiivide suurused.

int[][] matrix = new int[2][4];

int[] row1 = {1, 2, 6, 10};
int[] row2 = new int[4];

row2[0] = 2;
row2[1] = 11;
row2[2] = 5;
row2[3] = 100;

// add rows to matrix
matrix[0] = row1;
matrix[1] = row2;

for (int i = 0; i < matrix.length; i++) {
    System.out.println("Row " + i);

    for (int j = 0; j < matrix[0].length; j++) {
        System.out.println(matrix[i][j]);
    }
    System.out.println();
}

// change element value in array
matrix[1][2] = 42;
System.out.println("\n" + matrix[1][2]);

Antud kood trükib konsooli:

Row 0
1
2
6
10

Row 1
2
11
5
100

42

Kahemõõtmeline järjend

ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();

ArrayList<String> firstList = new ArrayList<String>();
firstList.add("this");
firstList.add("is");
firstList.add("a");
firstList.add("list");

ArrayList<String> secondList = new ArrayList<String>();
secondList.add("this");
secondList.add("is");
secondList.add("another");
secondList.add("list");

// add two lists to ListOfLists
listOfLists.add(firstList);
listOfLists.add(secondList);

for (ArrayList<String> list : listOfLists) {
    for (String word : list) {
        System.out.println(word);
    }
    System.out.println();
}

// change element with index 1 in secondList
secondList.set(1, "was");

// replace listOfLists element with index 1 with secondList
listOfLists.set(1, secondList);

System.out.println();
for (String word : listOfLists.get(1)) {
    System.out.println(word);
}

See kood prindib konsooli:

this
is
a
list

this
is
another
list

this
was
another
list