二分探索木とハッシュ表

二分探索木の概念 二分探索木は、空の木または以下の性質を持つ二分木です。 左部分木が空でない場合、左部分木のすべてのノードの値は根ノードの値より小さい。 右部分木が空でない場合、右部分木のすべてのノードの値は根ノードの値より大きい。 左右の部分木もまた二分探索木である。 TreeSetやTreeMapは内部的に赤黒木(平衡二分探索木)を使用しており、中間順巡回 ...

5月21日 01:14 投稿

Javaコレクションフレームワーク入門:ListとSetの基本

Javaのコレクションフレームワークは、主に以下の2つの大分類に分けられる。 Collection:List、Set、Queueが含まれる。 Map:キーと値のペアを管理するインターフェース。 Listインターフェース Listは順序付きで重複を許容するコレクションであり、インデックスによる要素アクセスが可能である。 ArrayList ArrayListは内部的に動的配列を用いて実装されており ...

5月15日 22:00 投稿

Javaの並行処理における ArrayList・HashSet・HashMap のスレッドセーフ問題

ArrayList の問題点 まずは ArrayList を取り上げます。ArrayList は 다음과 같이宣言できますが、複数のスレッドから同時にアクセスすると問題が発生します。 ArrayList<String> dataList = new ArrayList<>(); ArrayList の内部構造について解説します。JDK 7 以前では、初期容量が 10 の Object 型配列が使用されていました。JDK 8 以降では、インスタンス ...

5月12日 19:36 投稿