Java のデータ構造で使いそうなものを自分なりにまとめたメモ。 標準ライブラリの他に、Guava 等もまとめの対象です。 java.util.List 順序を持つ 重複要素を許可 ArrayList 内部的には配列 挿入、削除はその要素以降の要素の再配置が行われるため遅い 追加やget(index)は速い LinkedList 数珠つなぎ構造 get(index)は遅い 挿入、削除が速い org.apache.commons.collections4.list.TreeList 挿入、削除が速い 追加やget(index)も速いが、ArrayList には劣る 挿入・削除が多い場合は LinkedList より TreeList を選択したほうが大抵良いらしい。 AVL tree で実装されている java.util.Set 重複要素を持たない 順序を保証しない HashSet 順序を保