第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Similar documents
Prog1_15th

JavaプログラミングⅠ

大容量情報検索論

JAVA入門

Microsoft PowerPoint - Pro110111

PowerPoint プレゼンテーション

JAVA とテンプレート

Microsoft PowerPoint - prog03.ppt

JAVA入門

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

プログラミング入門1

Prog1_6th

デジタル表現論・第6回

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

プログラミング入門1

PowerPoint プレゼンテーション

Microsoft PowerPoint - 6.pptx

文字列操作と正規表現

プログラミング入門1

メディプロ1 Javaプログラミング補足資料.ppt

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

デジタル表現論・第4回

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

DVIOUT-exer

Javaの作成の前に

Prog1_2nd

オブジェクト指向プログラミング・同演習 5月21日演習課題

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - lec06 [互換モード]

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

PowerPoint プレゼンテーション

Prog1_10th

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft Word _VBAProg1.docx

2. データ構造ヒープに保存するデータは 番号付けられて保存される 従って リスト L として保存することとする 3. アルゴリズム 3.1. 要素の追加新しい要素の追加は リストの終端に置くことで開始する つまり 最下層の一番右 または新たに最下層を生成してその一番左となる この後 この要素を正し

プログラミングI第10回

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

PowerPoint Template

Microsoft PowerPoint ppt

memo

JavaプログラミングⅠ

Prog2_10th

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

プログラミング基礎I(再)

JavaプログラミングⅠ

Microsoft PowerPoint - chap10_OOP.ppt

Sort-of-List-Map(A)

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

プログラミング入門1

スライド 1

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

CollectionsとLambda式


PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

JAVA入門

PowerPoint プレゼンテーション

Java講座

5 継承とは クラス図 98 7 参照の自動型変換 参照の自動型変換 クラス図の見方 クラス図の書き方 継承 継承してクラスを作る インスタンスの初期化 継承の効果を確認する

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Microsoft PowerPoint - C++_第1回.pptx

108 頁通過テスト 2. の本文 111 頁紹介文 136 頁練習 5-1 プログラム 136 頁練習 5-1 問 2 末尾に句点追加 158 頁練習問題文 161 頁練習 2-2 コメント文 166 頁練習 3-1 問 1 クラス名を挿入 178 頁通過テスト 3 文字 s を削除 180 頁コ

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

Microsoft PowerPoint - prog04.ppt

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

第2回

JavaプログラミングⅠ

人工知能入門

Prog1_10th

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

Microsoft PowerPoint - 06.pptx

PowerPoint プレゼンテーション

第1回 プログラミング演習3 センサーアプリケーション

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

Microsoft PowerPoint - 11.pptx

PowerPoint プレゼンテーション

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

GEC-Java

第3回 配列とリスト

アルゴリズムとデータ構造

Prog1_13th

Java プログラミング Ⅰ 11 回目多次元配列 2 次元配列 2 次元配列配列要素が直線上に並ぶ一次元配列に対して 平面上に並ぶ配列要素をもつ配列 直観的には 2 次元配列の準備配列変数の宣言は型と識別子を指定して次のように行う 型識別子 [ ][ ]; または 型 [ ][ ] 識別子 ; 配

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Microsoft Word - CompA-Ex doc

JavaプログラミングⅠ

メソッドのまとめ

JavaプログラミングⅠ

memo

JavaプログラミングⅠ

Microsoft PowerPoint - ruby_instruction.ppt

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Transcription:

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先頭の要素要素から最後までが直線的に直結している構造 Set 同じものは含まないという構造. 要素間につながりはない Map 各要素がキーを持ち キー値により検索できる. 要素間につながりはない Queue スタックやキューによる出し入れを提供する. の 4 タイプがある. 今回は List について扱う.MAP については演習問題を参照せよ. List List は先頭の要素要素から最後までが直線的に直結している構造である. データ構造とアルゴリズムを履修している人は リストについて学習していると思われるが Java では標準でリスト構造が準備されている.List には Array List, Linked List, Vector の 3 つに分かれる. Array List は要素サイズが動的変化する配列のようなものである. Linked List はキューやスタックの機能を持つ双方向のリストである. Vector はマルチスレッド環境で安全に動作するように設計されたリストである. 次のサンプルソースを実行してみよう!!

* Sample1.java * ArrayList の使い方 * 普通の for 文を使用 import java.util.arraylist; public class Sample1 { // コレクションオブジェクト (ArrayList 型 ) の生成 // コレクションが扱うデータ型として DataSample を指定する例 ArrayList<String> list = new ArrayList<>(); System.out.println("Section1: データの挿入を行う "); // データを挿入する // Data 型の適当なオブジェクトを作成して挿入を行う list.add(" 長門 "); list.add(" 陸奥 "); list.add(" 伊勢 "); list.add(" 日向 "); list.add(" 雪風 "); list.add(" 赤城 "); list.add(" 加賀 "); // 要素数の確認方法 //size() で行うことが可能 System.out.println(" 要素数は "+list.size()+" です."); System.out.println("Section2: データの表示を for 文で行う "); // データの表示を for 文で行う // ArrayList の中身を 1 つずつ取り出して表示してみる for(int i=0; i<list.size(); i++){ String Ship = list.get(i); System.out.println(Ship); Map 型 HashMap は連想配列とも呼ばれ 要素を格納する時に要素に対応するキーを合わせて登録する. 例えば 商品コードを キーとして商品名を登録すれば 商品コードを使って商品名を知ることが出来る.

拡張 for 文 連続したデータ型 ( 配列やコレクションなど ) の要素すべてに対して同じ処理を行うときに利用する.for 文より便利に使用することが可能である. ほかの言語 ( 例えば php など ) に触れたことがある人は for-each 文と表現した方が分かりやすいかも知れない. * Sample2.java * ArrayList の使い方 * 拡張 for 文 (for-each) の使い方 import java.util.arraylist; public class Sample2 { ArrayList<String> list = new ArrayList<>(); System.out.println("Section1: データの挿入を行う "); // データを挿入する // Data 型の適当なオブジェクトを作成して挿入を行う list.add(" 長門 "); list.add(" 陸奥 "); list.add(" 伊勢 "); list.add(" 日向 "); list.add(" 雪風 "); list.add(" 赤城 "); list.add(" 加賀 "); System.out.println("Section2: データの表示を fo-eachr 文で行う "); // データの表示を for-each 文で行う // ArrayList の中身を 1 つずつ取り出して表示してみる for(string Ship : list){ System.out.println(Ship);

ガベージコレクション ガベージコレクション (GC) とはプログラムが動的確保したメモリ領域のうち 使わなくなったメモリ領域を解放することである. C 言語では malloc 関数などで動的に確保したメモリ領域を free 関数で解放する必要があったが Java では JVM が自動で行ってくれる. 演習問題 良い演習問題が考えられなかったため 次のサンプルソースを入力して プログラムの動きを確認しなさい. (1) Map を利用した場合の例について Sample3.java をプログラムして確認しなさい. * Sample3.java * Map の使い方 import java.util.hashmap; import java.util.map; import java.util.set; public class Sample3 { // 以下の 1 つだけコメントを外して 実行結果を比べる // 順番通りになっていない ( 保存した通りに表示している ) Map<String, String> apostle = new HashMap<>(); // 入力された順番通りに出力 //Map<String, String> apostle = new LinkedHashMap<>(); //1 文字 1 文字比較して (ascii コード表通り ) 表示する //Map<String, String> apostle = new TreeMap<>(); // 次のページへ続く // 適当に使徒の名前を入力 // 第一引数 = キー, 第二引数 = 値 apostle.put(" 第 1 使徒 "," アダム "); apostle.put(" 第 2 使徒 "," リリス "); apostle.put(" 第 5 使徒 "," ラミエル "); apostle.put(" 第 4 使徒 "," シャムシエル "); apostle.put(" 第 3 使徒 "," サキエル "); apostle.put(" 第 18 使徒 "," リリン "); apostle.put(" 第 17 使徒 "," タブリス ");

// Set を使ってキーを取り出す. Set<String> keys = apostle.keyset(); // 取り出したキーを表示させる (for-each 文 ) for(string str : keys){ System.out.println(str +"-"+ apostle.get(str) + "\t"); (2) Array List を利用した場合の例について Sample4.java と SampleData.java をプログラミングし確認しなさい. * Sample4.java * ArrayList の補足 * データの挿入と削除 import java.util.arraylist; public class Sample4 { // コレクションオブジェクト (ArrayList 型 ) の生成 // コレクションが扱うデータ型として SampleData を指定する場合 ArrayList<SampleData> shiratuyu = new ArrayList<>(); System.out.println("section1: データの挿入 "); // section1: データの挿入 // SampleData 型のオブジェクトを作成してデータを追加する. shiratuyu.add(new SampleData(" 白露 ")); shiratuyu.add(new SampleData(" 時雨 ")); shiratuyu.add(new SampleData(" 村雨 ")); shiratuyu.add(new SampleData(" 夕立 ")); shiratuyu.add(new SampleData(" 春雨 ")); shiratuyu.add(new SampleData(" 涼風 ")); // 要素数を確認する System.out.println(" 要素数は "+shiratuyu.size()+" です."); // 次のページへ続く

System.out.println("section2: データの表示 "); // section2: データの取り出し (for-each 文 ) for(sampledata distroyer : shiratuyu){ System.out.println(" 白露型 : "+distroyer.getval()); System.out.println("secction3: データの個別表示 "); // secction3: データの取り出し ( 要素番号を指定 ) // 要素番号は 0 から開始 // 3 番艦の村雨を表示 SampleData ship = shiratuyu.get(2); System.out.println(" 白露型 (2): "+ship.getval()); System.out.println("section4: データの途中挿入 "); // リスト構造の利点が分かる // section4: 要素の挿入 // 4 番目と 5 番目の間に新しい要素を挿入する shiratuyu.add(5,new SampleData(" 五月雨 ")); // 要素数の確認 System.out.println(" 現在の要素数は "+shiratuyu.size()+" です."); // 全件を表示して確認 for(sampledata distroyer : shiratuyu){ System.out.println(" 白露型 : "+distroyer.getval()); System.out.println("section5: データの削除 "); // section5: 要素の削除 // 4 番目の要素を取り除く ( 春雨はアーケード版で実装されていないため ) shiratuyu.remove(4); // 要素数の確認 System.out.println(" 現在の要素数は "+shiratuyu.size()+" です."); // 全件を表示して確認 for(sampledata distroyer : shiratuyu){ System.out.println(" 白露型 : "+distroyer.getval());

* SampleData.java * Sample4.java で使用するクラス public class SampleData { String value; // 適当な文字列を入れる String オブジェクト // 引数なしのコンストラクタ public SampleData(){ value = ""; // 引数ありのコンストラクタ public SampleData(String s){ this.value = s; // value に引数で与えられた文字列を代入 public void setval(string s){ this.value = s; // 現在の value の値を返す // ゲッター public String getval(){ return value;