Presentation is loading. Please wait.

Presentation is loading. Please wait.

コレクション・フレームワーク データベース論 第7回.

Similar presentations


Presentation on theme: "コレクション・フレームワーク データベース論 第7回."— Presentation transcript:

1 コレクション・フレームワーク データベース論 第7回

2 この講義に関するWebページ

3 連絡事項 来週 (6/4) の講義は休講です。 第1回レポート課題の締切は 6/20 です。

4 Tomcat がうまく動かない場合 インストールは済ませましたか? Zドライブにインストールしましたか?
プロファイルの情報が読み込まれていない場合がある。 inside.html  システム情報  「2F実習室でプロファイルが読込めない障害について」を参照のこと。

5 コレクション・フレームワーク コレクション コレクションを繰り返して処理する 代表的なアルゴリズムを使う オブジェクトをまとめたもの
ソート、サーチなど

6 コレクション オブジェクトを集めたもの これらはいずれも「インタフェース」であり、実装クラスが別にある。
java.util.List java.util.Set java.util.Map これらはいずれも「インタフェース」であり、実装クラスが別にある。 単に配列を使ったりするよりも、便利な機能が多い。

7 java.util.List (1) オブジェクトが順番に並んだコレクション 実装クラスには java.util.ArrayList
java.util.LinkedList java.util.Vector

8 java.util.List (2) // 生成 List list = new ArrayList(); // リストの末尾に追加
list.add(line); // 0番目 (=先頭) の要素を取得 String str = (String)list.get(0);

9 インタフェースの利用 普通ならこう書く。 ArrayList は List インタフェースを実装しているので、こう書ける。
ArrayList list = new ArrayList(); ArrayList は List インタフェースを実装しているので、こう書ける。 List list = new ArrayList(); LinkedList も List を実装しているから、こう書ける。 List list = new LinkedList(); public class ArrayList implements List { ….. }

10 java.util.List (3) リスト内での挿入や削除が頻繁に起こるなら、実装クラスには java.util.LinkedList を使う。 「ダブルリンクトリスト」というデータ構造が使われており、挿入や削除が高速にできる。 List list = new LinkedList(); とするだけ。 ArrayList や LinkedList は同期化されていない。 同期化するには次のようにする。 List newList = Collections.synchronizedList(list);

11 同期化 1つのオブジェクトに、2つのスレッドがアクセスする場合 そこで、同時にはアクセスできないようにする。これが同期化。
1つのスレッドからは、オブジェクトを削除するメソッド 別のスレッドからは、オブジェクトを取得するメソッド 矛盾が生じる そこで、同時にはアクセスできないようにする。これが同期化。 ただし、同期化させると遅くなる。

12 java.util.Set (1) オブジェクトの重複がないコレクション 数学の「集合」と同じ 実装クラスには
java.util.HashSet HashSet は同期化されていない。

13 java.util.Set (2) // 生成 Set set = new HashSet(); // 登録
set.add(“1000”); // 指定したオブジェクトが含まれているかどうか set.contains(“1000”);

14 java.util.Map (1) 「キー」と「値」がペアになっているコレクション キーの重複はない。 実装クラスには
java.util.HashMap java.util.WeakHashMap java.util.Hashtable HashMap や WeakHashMap は同期化されていない。

15 java.util.Map (2) // 生成 Map map = new HashMap();
// 登録 (“1000” がキー、“夏目漱石” が値) map.put(“1000”, “夏目漱石”); // キーから値を取得 String value = (String)map.get(“1000”);

16 java.util.SortedSet と java.util.SortedMap
挿入や削除があっても順番を保持する 実装クラスは java.util.TreeSet java.util.SortedMap 内部でキーの順番を保持している Map 実装クラスは java.util.TreeMap

17 java.util.Iterator (1) コレクションの中のオブジェクトをひとつひとつ処理していく。

18 java.util.Iterator (2) Iterator iterator = list.iterator();
while (iterator.hasNext()) { String value = (String)iterator.next(); System.out.println(value); }

19 java.util.Collections コレクションの中でのソート(整列)、サーチ(探索)、最大・最小など、代表的なアルゴリズムをそのまま使える。 Collections.sort(list); ソートの場合は、「自然な順序付け」で行う。例えば、アルファベット順など。 順序付けは自分で定義できる。


Download ppt "コレクション・フレームワーク データベース論 第7回."

Similar presentations


Ads by Google