第 3回

http://www.xmlpro.org/
↑ 講義資料のダウンロードは ↑
ブログの「講義資料」から
第3回 配列
参考書:スッキリわかるJava入門 第2版
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
2
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
3
配列
同一種類の複数データを並び順で格納するデータ構造
⓪
① ②
③ ④
int int int int int
4
データ構造
いくつかの関係あるデータをグループにして、
まとめて1つの変数に入れる仕組み
5
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
6
配列
同一種類の複数データを並び順で格納するデータ構造
[0] [1] [2] [3] [4]
7
要素
配列としてまとめてある変数の、一つ一つ
基本的には変数と同じ性質
[0] [1] [2] [3] [4]
8
添え字
indexとも言う。番号。ゼロから始まる。
[0] [1] [2] [3] [4]
9
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
10
配列の作成
データを入れる箱を用意するために、2つの手順が必要
//配列の宣言
要素の型[] 配列名;
//要素の作成
配列名 = new 要素の型[要素数];
11
「変数」との比較
箱の作成
int age; //変数の宣言
int[] scores; //配列の宣言
scores = new int[5]; //要素の作成
12
配列の作成
これもまとめて書ける
要素の型[] 配列名 = new 要素の型[要素数];
13
「変数」との比較
まとめて書く
int age = 20; //初期化
int[] scores = new int[5]; //配列の作成
14
要素に代入
作成した配列の要素に、データを代入する
配列名[添え字] = データ;
//配列scoresの0番目の要素に代入
scores[0] = 70;
15
配列の初期化
「配列の作成」と「要素への代入」をまとめて行う
要素の型[] 配列名 = new 要素の型[]{初期値1,初期値2,・・・};
要素の型[] 配列名 = {初期値1,初期値2,・・・};
16
配列の初期化の注意点
17
実演
18
実演
19
ちなみに
20
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
21
forで楽するテクニック
配列は添え字で要素を指定して、計算や代入なんかを行う
そこにforを組み合わせると、だいぶ楽できる
22
実演
23
実演
要素数
添え字は
ゼロから
添え字は
1刻み
24
実演
25
要素数
配列の要素数は覚えておく必要がない
配列名.length
//配列scoresの要素数
scores.length
26
実演
27
実演
28
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
29
どうなる?
30
こうなる
31
メモリ
主記憶装置とも言う
容量は小さいが、高速で読み書きができる
変数や配列はここに作られている
32
イメージ図
a
b
c
d
e
f
g
A Aa
B
Be
C
33
int x = 10;
a
A
b
c
d
e
f
g
10
B
C
34
int x = 10; int y = x;
a
A
b
10
c
d
e
f
g
10
B
C
35
int[] nums1 = new int[4];
a
A
B
b
c
10
d
e
f
[2]
[3]
g
10
[0]
[1]
C
36
int[] nums1 = new int[4]; int[] nums2 = nums1;
a
A
B
b
c
10
d
e
f
[2]
[3]
g
10
[0]
[1]
C
37
どうなる?
38
こうなる
39
基本型と参照型
基本型変数
区画に保存されているデータそのものをやりとりする変数
参照型変数
区画のアドレスをやりとりする変数
40
参照を切る
配列名だけだと、その配列の最初の要素のアドレスを意味する
このようなアドレスを指し示す動作のことを「参照」と呼ぶ
それを消し去る方法
null
41
実演
42
実演
43
ガベージコレクション
プログラムを実行していくうえで発生した、メモリ内のゴミを片付けて
くれる仕組み
44
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
45
多次元配列
配列を格納した配列のこと
今までの配列は1次元配列
配列を格納した配列は2次元配列
配列を格納した配列を格納した配列は3次元配列
配列を格納した・・・
46
2次元配列
1次元配列に付け足す感じ
要素の型[][] 配列名 =
new 要素の型[外側の配列の要素数][内側の配列の要素数];
配列名[外側の配列の要素番号][内側の配列の要素番号]
47
実演
48
図
[0](Aクラス)
[1](Bクラス)
[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]
10 20 30
50 70 90
49
多次元配列
50
目次
• 配列とは
• 配列の用語説明
• 配列の使い方
• forとの組み合わせ
• 配列の詳細
• 多次元配列
• 演習
51
演習①
int型の要素を3つ格納する配列を作成し、それぞれの要素に好きな
値を入れて、出力せよ。
52
演習②
int型の要素を7つ格納する配列を作成し、for文の中で、各要素へ
のデータの代入及び出力を行うプログラムを作成せよ。
53
演習③
外側の配列の要素数が3、内側の配列の要素数が5の2次元配列
を作成し、for文のネストを用いて、要素へのデータの代入及び出力を
行うプログラムを作成せよ。
「外側の配列の要素数が3、内側の配列の要素数が5の2次元配列」
例) int[][] ex = new int[3][5];
54