Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/09/03 14:00

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

目次

はじめに

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

  • Mark Grand(Mark Grand)

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

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5