コレクションフレームワーク

HashMapの注意点

HashMapを使う上での注意点について説明します。 Map型変数を使う HashMapオブジェクトを格納するには、HashMap型変数ではなくMap型変数を使います。 // HashMapオブジェクトの生成 Map<String, String> map = new HashMap<String, String>(); HashMapはMapの実装の一つに過ぎません。HashMap</string,></string,>…

同期のためにVectorは使わない(VectorとCollections.synchronizedList)

よくJavaの解説には、VectorとArrayListの違いはスレッドセーフであるかないかだということが書かれている。そのような解説を読むと、スレッドセーフな可変長配列がほしい場合にはVectorを使えば良いと思ってしまいそうだが、私は同期を目的としてもVectorは…

ハッシュは二分木(ツリー)より速い(ハッシュとツリーの速度比較)

ハッシュは遅いという意見があるようだが、実装や使い方を誤らなければ、基本的にツリーよりハッシュの方が速い。(この記事は以前書いた「ハッシュは本当に遅いのか?いや、遅くない(反語)」を簡潔にまとめたものです) ハッシュとツリーの速度を比較した…

ハッシュは本当に遅いのか?いや、遅くない(反語)

この記事を簡潔にまとめた記事「ハッシュは二分木(ツリー)より速い」を掲載しました。(2008-08-04) ハッシュと二分木(ツリー)*1では普通はハッシュの方が速いとされる(ハッシュは挿入、参照、削除の時間計算量がO(1)、二分木はO(log N))。しかし、ハ…