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