0
0

java 2次元配列

Posted at

はじめに

2次元配列に1次元配列を格納しようとしたが、理解できていない事が分かった。
忘れてもすぐに思い出せるよう分かった事をまとめた。
(メモリの番地が格納されている事がポイントだと思います。)

イメージ

例えば 2行3列の配列 int mat[][] = new int[2][3]; を作成した場合
3列の配列が2つ作成され、それぞれの先頭の番地がmat[0]、mat[1]に格納される。
別の見方をするとmat[0]には、1行目の先頭の番地が格納されている。
(例の1行目はmat[0][0]、mat[0][1]、mat[0][2])

lengthの結果

mat.lengthは、行数を表す。
mat[0].lengthは、0行目の列数を表す。

サンプルコード

2jigen.java
//2次元配列の初期化
char test[][] = {{'a','b','c','d'},{'e','f','g','h'}};
char toTest[][] = {{'1','2','3','4'},{'5','6','7','8'}};

//testの1行目にtoTestの1行目を格納
//toTest1行目の先頭番地をtest1行目に格納している。
test[0] = toTest[0];

//testの1行目を出力
for (int i=0; i<test[0].length; i++) {
    System.out.println(test[0][i]);
}

//testの行数を出力
System.out.println("testの行数 = test.length = "+test.length);
//testの列数を出力
System.out.println("testの列数 = test[0].length = "+test[0].length);
1
2
3
4
testの行数 = test.length = 2
testの列数 = test[0].length = 4

参考文献

スッキリわかる Java入門

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0