JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > コレクション編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2003/05/10  田中宏和
コレクション編
◆コレクションとは?
コレクションとは複数の要素が集まったグループを表すオブジェクトのことです。
◆コレクション・フレームワークとは?
コレクション・フレームワークとはコレクションを表したり操作したりする統一されたアーキテクチャのことです。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.1_01
◆Java実行環境の構築
アプリケーション編を参考にしてJava実行環境を構築してください。
◆インターフェース
セット、リスト、マップなど、種類ごとに異なるコレクションを表すインタフェースがあります。これらはコレクション・フレームワークの基礎を構成します。
■コレクション・インターフェースの構成
■コレクション・インターフェースの説明
インターフェース 説明
Collection オブジェクトの集まりを表すもっとも基本的なインターフェースです。
Set 重複要素のないオブジェクトの集まりを表します。
List 順序付けられたオブジェクトの集まりを表します。重複を許可します。リスト内のどこに各要素が挿入されるかを制御することができ、ユーザーは位置(インデックス)を指定して各要素にアクセスすることができます。
Map キーを値にマッピングするオブジェクトです。キーは重複して登録することはできません。各キーはそれぞれ一つの値にマッピングします。
SortedSet 要素が自然順序付けに従って昇順にソートされたセットを表します。挿入される要素は、Comparable インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。
SortedMap キーが自然順序付けに従って昇順にソートされたマップを表します。挿入されるキーは、Comparable インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。
◆実装
コレクション・インターフェースを実装する複数のクラスがあります。これらのクラスを用途別に使い分けることができます。
■汎用の実装の概要
 
実装
ハッシュテーブル
サイズ
変更可能な配列
バランスツリー
リンクリスト
ハッシュテーブル
&リンクリスト
インターフェース
Set
HashSet
 
TreeSet
 
LinkedHashSet
List
 
ArrayList
 
LinkedList
 
Map
HashMap
 
TreeMap
 
LinkedHashMap
・HashSet
HashMap のインスタンスを基づくSet インタフェースを実装します。繰り返し順序について保証しません。
・TreeSet
TreeMap のインスタンスに基づくSet インタフェースを実装します。要素の昇順でソートされます。
・LinkedHashSet
繰り返し順序を持つSet インタフェースのハッシュテーブルとリンクリストの実装です。要素がセットに挿入された順序を保持します。要素をセットに再挿入する場合、挿入順は影響を受けません。
・ArrayList
List インタフェースのサイズ変更可能な配列の実装です。配列のサイズを操作するメソッドを提供します。
・LinkedList
List インタフェースのリンクリストの実装です。リストの先端および終端にある要素を取得、削除したり、先端および終端に要素を挿入したりするメソッド を提供します。同期化されないことを除いてVectorとほぼ同等です。
・HashMap
Map インタフェースのハッシュテーブルに基づく実装です。マップの順序について保証しません。同期化されないこととnullを許容することを除いてHashtableとほぼ同等です。
・TreeMap
SortedMap インタフェースの実装に基づく Red-Black ツリーです。マップがキーの昇順でソートされます。
・LinkedHashMap
繰り返し順序を持つMap インタフェースのハッシュテーブルとリンクリストの実装です。キーがマップに挿入された順序を保持します。キーをマップに再挿入する場合、挿入順は影響を受けません。
◆比較
■HashSetとTreeSetとLinkedHashSet
重複要素のないオブジェクトの集まりを管理するクラスはHashSetとTreeSetとLinkedHashSetがあります。Setの機能だけ必要な場合はHashSetを使用します。要素を昇順にソートする必要がある場合にTreeSetを使用します。要素の挿入順を保持する必要がある場合にLinkedHashSetを使用します。
(関連) コレクション(Set)編
■ArrayListとLinkedList
順序付けられたオブジェクトの集まりを管理するクラスはArrayListとLinkedListがあります。この2つのクラスの性能を比較します。
  インデックス
アクセス
Iterator
アクセス
追加 挿入 削除
ArrayList
LinkedList
ArrayListはインデックスによるランダムアクセスの性能が優れていますが、要素の挿入、削除には向いていません。LinkedListは逆に要素の挿入、削除の性能が優れていますが、インデックスによるランダムアクセスには向いていません。
(関連) コレクション(List)編
■HashMapとTreeMapとLinkedHashMap
キーを値にマッピングする場合に使用するクラスはHashMapとTreeMapとLinkedHashMapがあります。Mapの機能だけ必要な場合はHashMapを使用します。キーを昇順にソートする必要がある場合にTreeMapを使用します。キーの挿入順を保持する必要がある場合にLinkedHashMapを使用します。
(関連) コレクション(Map)編
■書籍
Java関連の書籍

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME