>100 Views
January 26, 22
スライド概要
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-10. コレクション, ジェネリクス トピックス:コレクション,基本データ型,ジェ ネリクス URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1
• オブジェクトの集まりを1つのオブジェクトとし て扱いたい → コレクション Java の標準機能(ArrayList, HashMap など) 実際に使うときの注意点を説明 2
全体まとめ • Java の基本データ型のそれぞれに,ラッパクラス がある. • Java では「基本データ型のコレクション」という ものはない ArrayList<int> はない 「ラッパクラスのコレクション」で代用 ArrayList<Integer> で代用 • Java の標準機能として,ArrayList,HashMap など,コレクションを扱うためのクラスがある. • Java のコレクションのクラスの基礎は,ジェネリ クスである 3
アウトライン 番号 項目 復習 10-1 Java のコレクション 10-2 Java の基本データ型 10-3 ジェネリクス 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 4
Java Tutor の起動 ① ウェブブラウザを起動する ② Java Tutor を使いたいので,次の URL を開く http://www.pythontutor.com/ ③ 「Java」をクリック ⇒ 編集画面が開く 5
Java Tutor でのプログラム実行手順 (1)「Visualize Execution」をク リックして実行画面に切り替える (2)「Last」をクリック. (4)「Edit this code」をク (3) 実行結果を確認する. リックして編集画面に戻る 6
Java Tutor 使用上の注意点① • 実行画面で,次のような赤の表示が出ることがある → 無視してよい 過去の文法ミスに関する確認表示 邪魔なときは「Close」 7
Java Tutor 使用上の注意点② 「please wait ... executing」のとき,10秒ほど待つ. → 混雑しているときは, 「Server Busy・・・」 というメッセージが出ることがある. 混雑している.少し(数秒から数十秒)待つと自 動で表示が変わる(変わらない場合には,操作を もう一度行ってみる) 8
10-1. Java のコレクション 9
コレクションとは • コレクションは、オブジェクトの集まりを1つの オブジェクトとして扱いたいときに使う • Java の標準機能として,ArrayList,HashMap など,コレクションを扱うためのクラスがある 10
リスト (List) とは 15 • • 8 6 32 23 順序のあるデータ 要素の削除,挿入によりサイズが増減する 11
add メソッドは、要素の挿入 12
演習 資料:14 ~ 15 【トピックス】 • リスト 13
① Java Tutor のエディタで次のプログラムを入れる 空のリストの 組み立て add メソッドは 要素の挿入 拡張 for 文で リストの要素をたどる 14
② 実行し,結果を確認する (あとで使うので、プログラムを消さないこと) 15, 8, 6, 32, 23 が表示される 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 15
Java でのコレクションの使い方 • 型変数を使う(コレクションに入れるオブジェク トのクラスを示す) • 異なるクラスのオブジェクトをコレクションで扱 いたいときは、共通のスーパークラスを、型変数 に指定 16
演習 資料:18 ~ 19 【トピックス】 • リスト • 型変数 17
① Java Tutor のエディタで次のプログラムを入れる 18
② 実行し,結果を確認する (あとで使うので、プログラムを消さないこと) 100, 200, 300, 400, 500 が表示 される 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 19
クラス階層のイメージ Java の標準機能のクラスの多くは、Object のサブクラス Object Byte Integer Boolean Character Short Float Long String Double String, Integer に共通するスーパークラスは Object 20
演習 資料:22 ~ 23 【トピックス】 • リスト • 型変数 • クラス階層 21
① Java Tutor のエディタで次のプログラムを入れる 22
② 実行し,結果を確認する (あとで使うので、プログラムを消さないこと) 100, hello が表 示される 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 23
型変数は、毎回「Object」と書けば大丈夫ですか? いいえ。 ・プログラムが分かりにくくなる ・不便になる 型変数には、なるべく具体的なクラス名を書いた方がよいです. 24
10-2. Java の基本データ型 25
Java のデータの種類 ・基本データ データの種類 基本データ型 サイズ 整数 byte 8 bit short 16 bit int 32 bit long 64 bit float 32 bit double 64 bit 文字 char 16 bit true/false boolean 浮動小数 ・基本データの配列 ・クラスに属するオブジェクト: Javaの標準機能のクラスは, String, ArrayList, HashMap クラスなど多種 26
Java のコレクションは、オブジェクトのコレク ション • Java では「基本データ型のコレクション」という ものはない ArrayList<int> などはない データの種類 基本データ型 サイズ 整数 byte 8 bit short 16 bit int 32 bit long 64 bit float 32 bit double 64 bit 文字 char 16 bit true/false boolean 浮動小数 27
Java のコレクションは、オブジェクトのコレク ション これは OK これは動かない 28
Java のラッパクラス 基本データ型に対応したクラス ラッパクラス 基本データ型 -----------------------------Boolean boolean Character char Byte byte Short short Integer int Long long Float float Double double 29
Java のコレクションは、オブジェクトのコ レクション • Java では「基本データ型のコレクション」という ものはない ArrayList<int> はない 「ラッパクラスのコレクション」で代用 ArrayList<Integer> で代用 30
10-3. Java のジェネリクス 31
Java のジェネリクスとは • クラス名の後に「<クラス名>」を指定して、種々 の制限などができる機能 ArrayList は,コレクションのクラス. ArrayList<Integer> は,m には整数しか入れない という制限 32
Java のオブジェクトの生成 次の2つのオブジェクトを生成する Java プログラム a 1 2 b "xx" "yy" s e さまざまなクラスのオブジェクトが入る. s と e のクラスは同じに制限したい. • このとき,次のクラスを使うことにする クラス名 Pair 属性 s, e 33
• クラス定義で「class Pair<T>」のような書き 方ができる. • このとき、コンストラクタで「new Pair<Integer>」のような書き方ができる. 34
演習 資料:36 ~ 37 【トピックス】 • ジェネリクス 35
① Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する 表示を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 36
② Java Tutor のエディタで次のプログラムを入れ, 実行し,結果を確認する 表示を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 37
全体まとめ • Java の基本データ型のそれぞれに,ラッパクラス がある. • Java では「基本データ型のコレクション」という ものはない ArrayList<int> はない 「ラッパクラスのコレクション」で代用 ArrayList<Integer> で代用 • Java の標準機能として,ArrayList,HashMap など,コレクションを扱うためのクラスがある. • Java のコレクションのクラスの基礎は,ジェネリ クスである 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
ソースコード 10-1
import java.util.ArrayList;
import java.util.Iterator;
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");
for(String s : m) {
System.out.println(s);
}
}
}
40
ソースコード 10-1
import java.util.ArrayList;
import java.util.Iterator;
public class YourClassNameHere {
public static void main(String[] args) {
ArrayList<Integer> m = new ArrayList<Integer>();
m.add(100);
m.add(200);
m.add(300);
m.add(400);
m.add(500);
for(Integer s : m) {
System.out.println(s);
}
}
}
41
ソースコード 10-3
class Pair<T> {
T s;
T e;
public Pair(T s, T e) {
this.s = s;
this.e = e;
}
public void print() {
System.out.println(s);
System.out.println(e);
}
}
public class YourClassNameHere {
public static void main(String[] args) {
Pair a = new Pair<Integer>(1, 2);
Pair b = new Pair<String>("xx", "yy");
a.print();
b.print();
}
}
42