Java/ データ構造

Javaが提供するデータ構造のIFは10以上

Collection(値の集合)
 |
 |―List(順序の保存)
 |  |
 |  |―Vector(JDK1.0)
 |  |
 |  |―ArrayList(JDK1.2)
 |  |
 |  |―LinkedList(JDK1.2)
 |
 |―Set(重複データ不可)
 |  |
 |  |―HashSet(JDK1.2)
 |  |
 |  |―SortedSet(並べ替え)
 |  |  |
 |  |  |―TreeSet(JDK1.2)
 |  |
 |  |―LinkedHashSet(JDK1.2)
 |
 |―Map(キーと値の集合)
 |  |
 |  |―HashTable(JDK1.0)
 |  |
 |  |―HashMap(JDK1.2)
 |  |
 |  |―SortedMap(並べ替え)
 |  |  |
 |  |  |―TreeMap(JDK1.2)
 |  |
 |  |―LinkedHashMap(JDK1.4)
 //

機能的には3種類
List
Set
Map

ListとSetが値の集合
Listは順序を保障し重複を許す
Setは重複は許さず追加順序は保障しない

TreeSetの場合 必ず並べ替えられた順序になり
LinkedHashSetは順序を保障する

Mapもキー重複を許さず追加順序を保障しない
※TreeMapの場合はキーで並べ替えられる


List/Set/Mapの使い分け基準
―Vector
  ○ X番目の値へのアクセス
  × 値の検索
  △ 末尾への追加
  × 挿入
  × 削除
―ArrayList
  ○ X番目の値へのアクセス
  × 値の検索
  △ 末尾への追加
  × 挿入
  × 削除
―LinkedList
  × X番目の値へのアクセス
  × 値の検索
  ○ 末尾への追加
  ○ 挿入
  ○ 削除
―HashSet
  × X番目の値へのアクセス
  ○ 値の検索
  - 末尾への追加
  ○ 挿入
  ○ 削除
―TreeSet
  × X番目の値へのアクセス
  △ 値の検索
  - 末尾への追加
  △ 挿入
  △ 削除

検索主体の場合はSetが有効
その中でも
値の並べ替えが必要な場合はTreeSetが有効

検索が少なく データの追加/削除が少ない場合はVector/ArrayList
検索が少なく データの追加/削除が多い場合はLinkedListが有効


ref:
http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/10cont.html
2009-06-14 00:48 : __lang__java : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud