SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

アプリケーションに最適なJavaコレクションクラスを選ぼう

特定の用途に適したクラスを選択する方法とは

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Javaには、オブジェクトの集まりを扱うためのCollectionインターフェースを実装したクラスが用意されています。このようなコレクションクラスは20個以上あり、それぞれパフォーマンスと編成プロパティが異なります。この記事では、これらのクラスから特定の用途に最適なものを選択する方法を説明します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Javaには、オブジェクトの集まりを扱うためのCollectionインターフェースを実装したクラスが用意されています。このようなコレクションクラスは20個以上あり、それぞれパフォーマンスと編成プロパティが異なります。

 この記事では、これらのクラスから特定の用途に最適なものを選択する方法を説明します。

コレクションクラス

 Javaのjava.util.Collectionインターフェースは、クラスによって実装され、オブジェクトの集まりを包含したり管理したりするために使われます。JavaにはCollectionインターフェースを実装する具象クラスが20個以上あります。実際のパフォーマンスやオブジェクトの編成方法はクラスによって異なり、中には特殊な用途のためのものもあります。それぞれのクラスの機能をよく知らないと、どんな用途にどのクラスを使うべきなのか判断するのが難しいかもしれません。

 表1はJava 1.6が提供する具象クラスの一覧表です。

表1 Collectionを実装したJava 1.6の具象クラス
パッケージ クラス
java.beans.beancontext BeanContextServicesSupport
BeanContextSupport
java.util ArrayDeque
ArrayList
EnumSet
HashSet
LinkedHashSet
LinkedList
PriorityQueue
Stack
TreeSet
Vector
java.util.concurrent ArrayBlockingQueue
ConcurrentLinkedQueue
ConcurrentSkipListSet
CopyOnWriteArrayList
CopyOnWriteArraySet
DelayQueue
LinkedBlockingDeque
LinkedBlockingQueue
PriorityBlockingQueue
SynchronousQueue
javax.management AttributeList
javax.management.relation RoleList
RoleUnresolvedList
javax.print.attribute.standard JobStateReasons

 java.utilパッケージとjava.util.concurrentパッケージのクラスは汎用的なものであり、さまざまな用途に使われます。それ以外のパッケージのクラスは非常に特殊化されており、それぞれのパッケージの他のクラスと共に特定の用途にだけ使われます。

  • java.beans.beancontextパッケージのクラスはJavaBeans開発のためにbeanコンテキストをサポートします。
  • javax.managementパッケージとjavax.management.relationパッケージのクラスはプログラムのためにリモート管理インターフェースをサポートする管理beanです。
  • javax.print.attribute.standardパッケージのクラスは印刷ジョブの現在の状態を記述しやすくするためにそのパッケージで使われます。

 従って、実際には20個の汎用クラスの使い分けを検討すればよいことになります。これらのクラスを分類する最も有用な方法は、オブジェクトの編成方法と各種処理のパフォーマンスに注目することです。大抵の場合は、オブジェクトがどのように編成されているかの方が、オブジェクトの追加、検索、または削除がどれだけ素早く行えるかという点よりも重要になります。そういうわけで、まずは各クラスでのオブジェクトの編成方法について見ていくことにします。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
オブジェクトの編成方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Mark Grand(Mark Grand)

 ソフトウェアアーキテクトおよびライターとして30年以上の経験を持つ。分散システムとオブジェクト指向デザインとJavaを専門としており、インターネットを使用する最初の商業的なBtoB eコマースのアーキテクトでもある。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4284 2009/09/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング