pi-5. Javaにおけるコレクショ
ン:リストとマップ
1
金子邦彦
Java マスター講座:基礎から応用まで)
URL: https://www.kkaneko.jp/pro/pi/index.html
全体まとめ
複数データを扱うときの方法
単一のコレクション(リストやマップなど)で扱うこ
とができる.
Java の標準機能に,コレクションがある.
検索,挿入,削除などを行いたい場合,単一のコレ
クション(オブジェクト)で扱う方が楽である.
リストは,順序のあるデータである.要素の削除,
挿入によりサイズが増減する
マップは,ーと値(バリュー)ペア集まりで
ある.同じ値のキーは2回以上登場しない
2
アウトライン
3
番号
項目
復習
5
-1
リスト
5
-2
リストを演習できるオンラインサイト
の紹介
5
-3
マップ
各自,資料を読み返したり,課題に取り組んだりも行う
この授業では,Java を用いて基礎を学び,マスターする
オブジェクトとメソッド
メソッド: オブジェクトに属する操作や処理.
メソッド呼び出しでは,引数を指定することがある.引数
(ひきすう)は,メソッドに渡す値のこと
hero.attack("fence", 36, 26)
4
hero.moveDown()
hero オブジェクト
moveDown() メソッド
間を「.」で区切っている
Java プログラムの書き方
代入オブジェクト名 =
式または値またはメソッド呼び出し
メソッドアクセスオブジェクト名 .
メソッド名 +「() (引数を付けることも)
5
x = 100
a = x + 200
enermy1 = hero.findNearestEnemy()
hero.attack(enemy1)
プログラムの例
その他,属性アクセス,関数呼び出し,制御,「*,
+」などの演算子,コマンド,定義など
Java Tutor の起動
ウェブブラウザを起動する
Java Tutor を使いたいので,次の URL を開く
https://pythontutor.com/java.html
Java」をクリック 編集画面が開く
6
Java Tutor でのプログラム実行手順
7
(1)Visualize Execution」をク
リックして実行画面に切り替える
(2)Last」をクリック.
(3) 実行結果を確認する.
(4)Edit this code」をク
リックして編集画面に戻る
Java Tutor 使用上の注意点①
実行画面で,次のような赤の表示が出ることがある
無視してよい
過去の文法ミスに関する確認表示
邪魔なときは「Close
8
Java Tutor 使用上の注意点②
please wait ... executing」のとき,10秒ほど待つ
混雑しているときは, Server Busy・・・」
というメッセージが出ることがある.
混雑している.少し(数秒から数十秒)待と自
動で表示が変わる(変わらない場合には,操作を
もう一度行ってみる)
9
5-1. リスト
10
リスト
リストは,同じ型の要素の並び
リストの要素には順序がある0から始まる
番号添字)が付いている
要素の削除挿入によりサイズが増減する
11
15 32 23
20
1
3 4
リストを生成するプログラム
12
15 32 23
空のリストの
組み立て
add メソッドは
要素の挿入
add メソッドは,要素の挿入
13
演習
資料:15 21
トピックス
リスト
ArrayList
14
Java Tutor のエディタで次のプログラムを入れる
15
空のリストの
組み立て
add メソッドは
要素の挿入
実行し,結果を確認する
プログラムはあとで使うので消さないこと
16
オブジェクト m が生成される.
JavaTutor には,コレクションの
要素を表示する機能はない)
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
Java ArrayList クラス
標準機能として,次のメソッドがある.
コンストラクタ ArrayList
要素の挿入 add
要素の削除 clear, remove
要素の取得 get
検索 indexOf
要素値の更新 set
要素数 size
など
リストの機能
17
Java Tutor のエディタで次のプログラムを入れる
size で要素数を数える
18
この中で
メソッド size の呼び出し
19
サイズ 5
実行し,結果を確認する
プログラムはあとで使うので消さないこと
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
Java Tutor のエディタで次のプログラムを入れる
indexOf で,リストの中から「"6"」を探す.
20
この中で
メソッド indexOf の呼び出し
21
2
実行し,結果を確認する
プログラムはあとで使うので消さないこと
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
5-2. リストを演習できる
オンラインサイトの紹介
22
23
リストは,同じ型の要素の並び
「リスト」を演習できる
オンラインサイトの紹介
ウェブブラウザを起動する
次の URL を開く
https://visualgo.net/ja
Linked List (連結リスト)」をクリック
24
説明が出る場合がある.ESC キーを押して,説
明を消す
左下のメニューで「Enqueue (入れる)」をク
リックし,「Go」をクリック
25
末尾に挿入されるので,確認する
26
5-3. マップ
27
マップは,キー値(バリューペア
の集まり
同じ値のキー2回以上登場しない
マップ (Map)
28
キー
値(バリュー)
1
Red
2
Yellow
3
Blue
マップを生成するプログラム
29
空のマップの
組み立て
put」は
要素の挿入
この中で
メソッド size の呼び出し
演習
資料:31 36
トピックス
マップ
HashMap
30
Java Tutor のエディタで次のプログラムを入れる
31
32
実行し,結果を確認する
プログラムはあとで使うので消さないこと
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
サイズ 3
Java HashMap クラス
標準機能として,次のメソッドがある.便利.
コンストラクタ HashMap
要素の挿入 put
要素の削除 clear, remove
検索 get
要素数 size
など
マップの機能.ペアを扱うときに便利.
33
get メソッド
キーから値(バリュー)を得る
x.get(1) 結果は「Red
x.get(2) 結果は「Yellow
x.get(3) 結果は「Blue
Java HashMap クラスの get メソッド
34
キー
値(バリュー)
1
Red
2
Yellow
3
Blue
Java Tutor のエディタで次のプログラムを入れる
35
36
実行し,結果を確認する
プログラムはあとで使うので消さないこと
Visual Execution」をクリック.そして「Last」をクリック.結果を確認.
Edit this code」をクリックすると,エディタの画面に戻る
マップの生成,要素の挿入,拡 For
マップの生成
要素の挿入
37
x: オブジェクト名
Integer:
キーのクラス
String:
値(バリュー)の
クラス
x : オブジェクト名
1, “Red”: 挿入したい要素
まとめページ
全体まとめ
複数データを扱うときの方法
単一のコレクション(リストやマップなど)で扱うこ
とができる.
Java の標準機能に,コレクションがある.
検索,挿入,削除などを行いたい場合,単一のコレ
クション(オブジェクト)で扱う方が楽である.
リストは,順序のあるデータである.要素の削除,
挿入によりサイズが増減する
マップは,ーと値(バリュー)ペア集まりで
ある.同じ値のキーは2回以上登場しない
38
関連ページ
Java プログラミング入門
GDB online を使用
https://www.kkaneko.jp/pro/ji/index.html
Java の基本
Java Tutor, GDB online を使用
https://www.kkaneko.jp/pro/pi/index.html
Java プログラム例
https://www.kkaneko.jp/pro/java/index.html
39
資料中のソースコード 5-1
import java.util.ArrayList;
public class YourClassNameHere {
public static void main(String[] args) {
ArrayList<String> m = new ArrayList<String>();
m.add("15");
m.add("8");
m.add("6");
m.add("32");
m.add("23");
System.out.println(m.size());
}
}
40
資料中のソースコード 5-3
import java.util.HashMap;
public class YourClassNameHere {
public static void main(String[] args) {
HashMap<Integer, String> x = new HashMap<Integer, String>();
x.put(1, "Red");
x.put(2, "Yellow");
x.put(3, "Blue");
System.out.println(x.size());
}
}
41