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

Slides:



Advertisements
Similar presentations
Generic programming と STL
Advertisements

オブジェクト指向プログラミング(4) 静的分析(2)
アルゴリズムとデータ構造 2013年6月18日
アルゴリズムとデータ構造1 2005年7月8日
アルゴリズムとデータ構造 2010年7月5日
Javaのための暗黙的に型定義される構造体
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
Servlet J2EE I 第8回 /
アルゴリズムとプログラミング (Algorithms and Programming)
第5回 2007年5月25日 応用Java (Java/XML).
第4回 2007年5月11日 応用Java (Java/XML).
アルゴリズムとデータ構造 2012年6月14日
情報工学概論 (アルゴリズムとデータ構造)
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
アルゴリズムとデータ構造 2011年6月13日
JavaBeans とJSP データベース論 第5回.
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
エンタープライズアプリケーション II 第7回 / 2006年7月9日
第20章 Flyweight ~同じものを共有して無駄をなくす~
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
アルゴリズムとデータ構造 2011年6月14日
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
RMI ソフトウェア特論 第6回 /
Javaによる Webアプリケーション入門 第9回
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
~手続き指向からオブジェクト指向へ[Ⅱ]~
Stateful Session Beans
暗黙的に型付けされる構造体の Java言語への導入
第3回 2007年4月27日 応用Java (Java/XML).
シューティングゲーム.
アルゴリズムとデータ構造1 2006年7月4日
ポインタ解析におけるライブラリの スタブコードへの置換の効果
Javaによる Webアプリケーション入門 第6回
Collection, Generics, Iterator
Jakarta Struts (2) ソフトウェア特論 第11回.
第9回 優先度つき待ち行列,ヒープ,二分探索木
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
アルゴリズムとデータ構造1 2005年6月24日
アルゴリズムとデータ構造 2010年6月21日
2009/10/23 整列アルゴリズム (1) 第4講: 平成21年10月23日 (金) 4限 E252教室 コンピュータアルゴリズム.
Servlet ソフトウェア特論 第7回.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
実装編②HashTable,JavaAPI
アルゴリズムとプログラミング (Algorithms and Programming)
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
第9回 優先度つき待ち行列,ヒープ,二分探索木
C#プログラミング実習 第3回.
アルゴリズムとデータ構造 2012年6月11日
JAVA入門③ 配列とコレクション.
アルゴリズムとプログラミング (Algorithms and Programming)
コレクション・フレームワーク J2EE I (データベース論) 第6回 /
サブゼミ第7回 実装編① オブジェクト型とキャスト.
アルゴリズムとデータ構造1 2006年6月23日
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
Action Method の実装 J2EE II 第9回 2004年12月2日.
アルゴリズムとデータ構造1 2009年7月2日
アルゴリズムとデータ構造1 2009年6月15日
JSPの基本 J2EE I (データベース論) 第8回 /
Post-Kona paper 解説 P0083R1: Splicing Maps and Sets (Rev.3) 稲葉 一浩
アルゴリズムとデータ構造 2010年6月17日
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
データ構造と アルゴリズムI 第三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
JSFによるWebアプリケーション開発 第7回
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

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

この講義に関するWebページ http://www.wakhok.ac.jp/~tomoharu/db2003/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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