Javaのジェネリクス:型安全なコレクションと通配符の実践

ジェネリクスの基本概念 Javaのコレクションは初期段階ではすべてのオブジェクトをObject型として扱いました。このため、要素を取り出すたびに明示的なキャストが必要になり、型不一致によるClassCastExceptionのリスクが高まりました。ジェネリクスは、コンパイル時に型安全性を保証し、ランタイムでのキャストエラーを回避する仕組みです。 ジェネリッククラスの定義 ジ ...

8月3日 16:29 投稿

マップの4つのコレクション走査方法

HashMap<K,V>はハッシュテーブル構造を使用してデータを格納し、要素の挿入順序と取得順序が一致しない(挿入した順番に必ずしも取り出せない); LinkedHashMap<K,V>はハッシュテーブル構造とリスト構造を組み合わせてデータを格納する。リスト構造により、要素の挿入順序と取得順序が一致する(挿入順に取り出す); 二、カスタムクラスによる走査 getメソッ ...

8月3日 02:32 投稿

JavaにおけるMapコレクションの特性と実装方法

一、Mapコレクションの特徴: 1.Mapコレクションは二重のコレクションであり、一つの要素が二つの値(キー、値)を含みます; 2.Mapコレクションの要素において、キーと値のデータ型は同じでも異なっても構いません; 3.Mapコレクションの要素において、キーは重複できませんが、値は重複可能です; 4.Mapコレクションの要素において、キーと値は一対一で対応しています; ...

7月31日 06:52 投稿

.NETにおける並列コレクションの活用

BlockingCollection `BlockingCollection<T>`は、.NETで最も役立つ並列コレクションの一つです。第7章で見たように、`BlockingCollection<T>`は.NETの生産者/消費者パターンの実装として作成されています。異なる種類のサンプルプロジェクトを作成する前に、このコレクションのいくつかの詳細を確認しましょう。 BlockingCollectionの詳細 並列コードを実 ...

7月23日 21:52 投稿

MongoDBのクライアントツール、基本概念、データ型の解説

MongoDBとは MongoDBは、汎用的なドキュメント指向の分散データベースです。JSONライクな形式(BSON)でデータを格納し、スキーマの柔軟性と高いスケーラビリティを提供します。公式サイトでは「現代のアプリケーション開発者とクラウド時代のために構築された」と説明されています。 代表的なクライアントツール MongoDB Compass(公式・無料): GUIツール。クエリ、集 ...

6月22日 16:35 投稿

Map インターフェースの完全解説

Map インターフェースの概要 Map インターフェースは、キーと値のペアを管理するための双列コレクションです。Java では、Map インターフェースを実装するクラスとして以下が主に使用されます: HashMap (非スレッドセーフ) HashTable (スレッドセーフ) TreeMap (非スレッドセーフ) LinkedHashM ...

6月14日 00:13 投稿

MongoDBデータベースの作成と基本操作

MongoDBデータベースの作成 多くのリレーショナルデータベースでは、まずデータベースを作成し、その中でテーブルを作成しデータを挿入する必要があります。しかし、MongoDBでは、データを挿入時に存在しないデータベースを指定すると、MongoDBが自動的にそのデータベースを作成します。そのため、MongoDBでデータベースを作成するのは非常に簡単で、データを挿入時に新し ...

6月12日 18:52 投稿

LinkedList ソースコード解析

内部構造と特徴 LinkedList は内部的にダブルリンクリスト(双方向リスト)によって実装されており、List インターフェースと Deque インターフェースの両方を実装しています。このため、LinkedList はリストとして扱うことができるだけでなく、キュー(Queue)やスタック(Stack)としても利用可能です。 ただし、スタックやキューとして使用する場合には ArrayDeque の使 ...

5月23日 21:39 投稿

Javaアルゴリズム入門:基本データ構造とコレクション操作

基本フォーマット //Javaプログラムの基本構造 public class AlgorithmBasics { public static void main(String[] arguments) { //変数宣言 int number = 100; long bigNumber = Long.MAX_VALUE - 500L; //出力処理 System.out.print(number); //改行なし出力 System.out.println(bigNumber); //改行あ ...

5月22日 23:00 投稿