プログラミング

スポンサーリンク
Java

Java 逆引き集 | 多次元配列と List<List<T>> の使い分け — 可変性と利便性

多次元配列と List<List<T>> の使い分け — 可変性と利便性Java では「二次元以上のデータ構造」を表す方法が大きく分けて2つあります。多次元配列(int, String など)入れ子の...
Java

Java 逆引き集 | Guava / Apache Commons Collections の利用(拡張ユーティリティ) — 実務ツール

Guava / Apache Commons Collections の利用(拡張ユーティリティ) — 実務ツール標準 Java コレクション API は基本的な機能を提供しますが、実務では「もう少し...
Java

Java 逆引き集 | Collections.newSetFromMap(Map を Set に変換) — カスタム Set 実装

Collections.newSetFromMap(Map を Set に変換) — カスタム Set 実装Java には Collections.newSetFromMap(Map<E,Boolea...
Java

Java 逆引き集 | ThreadLocal を使ったスレッド依存データ管理 — スレッド単位の状態

ThreadLocal を使ったスレッド依存データ管理 — スレッド単位の状態同じ変数名でも、各スレッドが「自分専用の値」を持てるのが ThreadLocal。リクエスト単位のトレースID、フォーマッ...
Java

Java 逆引き集 | Map の null キー/値対応(実装差) — 入出力検証

Map の null キー/値対応(実装差) — 入出力検証Map は実装ごとに「null を許すか」が違います。キーに null を入れると検索や equals/hashCode まわりで混乱しやす...
Java

Java 逆引き集 | コレクション間の差分(removeAll, retainAll) — 差分集計

コレクション間の差分(removeAll, retainAll) — 差分集計差分を取りたいときの定番が removeAll(差集合の除去)と retainAll(共通部分の保持)。どちらも「破壊的(...
Java

Java 逆引き集 | バッファ付きコレクション(LinkedList の代替) — メモリ/性能の考慮

バッファ付きコレクション(LinkedList の代替) — メモリ/性能の考慮「バッファ用途(キュー、先頭・末尾の出し入れ、スライディングウィンドウ)」で LinkedList を選びがちですが、実...
Java

Java 逆引き集 | トポロジカルソート(グラフ→依存解決) — ビルド順や依存解決

トポロジカルソート(グラフ→依存解決) — ビルド順や依存解決「依存関係を持つタスクを順序付けする」典型アルゴリズムが トポロジカルソート。Java での実装は、有向非巡回グラフ(DAG) を前提に、...
Java

Java 逆引き集 | Stream の無限ストリーム(iterate, generate) — データ生成

Stream の無限ストリーム(iterate, generate) — データ生成無限ストリームは「必要なだけ動的に作る」ための道具です。Stream.iterate は「前の値から次を作る連続生成...
Java

Java 逆引き集 | Map のビュー(keySet, values, entrySet)の使い分け — 効率的操作

Map のビュー(keySet, values, entrySet)の使い分け — 効率的操作Map の「ビュー」は中身をコピーせず、元の Map に直接つながった見え方を返します。ビュー経由での操作...
Java

Java 逆引き集 | Immutable wrappers と defensive copy パターン — API 安全性

Immutable wrappers と defensive copy パターン — API 安全性API 設計で「外部から渡されたコレクションや配列を勝手に書き換えられてしまう」問題を防ぐために使う...
Java

Java 逆引き集 | Arrays.copyOf / copyOfRange — 配列操作と拡張

Arrays.copyOf / copyOfRange — 配列操作と拡張配列を「丸ごとコピー」「サイズ変更」「一部だけ取り出す」を、安全に簡潔に書けるのが Arrays.copyOf と Array...
Java

Java 逆引き集 | Collections.swap / replaceAll — リスト操作の簡潔化

Collections.swap / replaceAll — リスト操作の簡潔化リスト要素の入れ替えや一括置換を「短く安全に」書けるのが Collections.swap と Collections...
Java

Java 逆引き集 | ListIterator(双方向反復) — 位置ベースの操作

ListIterator(双方向反復) — 位置ベースの操作ListIterator は List を前後どちらの方向にも走査でき、走査しながら安全に「挿入・削除・置換」ができる反復子です。カーソルは...
Java

Java 逆引き集 | Iterator.remove の正しい使い方 — ループ中の安全な削除

Iterator.remove の正しい使い方 — ループ中の安全な削除拡張 for 文で走査中に remove すると例外になりがち。安全に要素を削除したいときは、Iterator を使い、next...
Java

Java 逆引き集 | Stream の並列化(parallelStream)と注意点 — スレッド安全性

Stream の並列化(parallelStream)と注意点 — スレッド安全性並列 Stream は「ForkJoinPoolで要素を分割・並列処理・結合」する仕組みです。速くなることもありますが...
Java

Java 逆引き集 | コレクションの初期容量指定(負荷低減) — パフォーマンスチューニング

コレクションの初期容量指定(負荷低減) — パフォーマンスチューニング「どれくらい要素が入るか」をあらかじめ見積もれるなら、初期容量を指定しておくと再割り当て(拡張)や再ハッシュを減らせます。結果とし...
Java

Java 逆引き集 | Immutable key の要件(hashCode/equals 安定) — Map の鍵設計

Immutable key の要件(hashCode/equals 安定) — Map の鍵設計Map のキーは「一度入れたら同じまま」であることが大前提です。途中で変化すると検索できなくなったり、誤...
Java

Java 逆引き集 | サブリスト(subList)の注意点(ビュー) — 変更の影響範囲

サブリスト(subList)の注意点(ビュー) — 変更の影響範囲Java の List.subList(from, to) は「部分リスト」を返しますが、これは コピーではなく元リストのビュー(見え...
Java

Java 逆引き集 | 自然順序付け(Comparable) — デフォルトソート

自然順序付け(Comparable) — デフォルトソートJava の「自然順序付け」は、クラスが Comparable インターフェースを実装している場合に使われる「デフォルトの並び替えルール」です...
Java

Java 逆引き集 | Comparator の作り方(comparing, reversed, thenComparing) — ソートルール

Comparator の作り方(comparing, reversed, thenComparing) — ソートルール「主キー→副キー→さらに副キー」と、明快に並び替えルールを書けるのが Compa...
Java

Java 逆引き集 | FlatMap を使ったネスト解除 — ネスト構造展開

FlatMap を使ったネスト解除 — ネスト構造展開「配列の中に配列」「リストの中にリスト」「Optional の中に Optional」など、入れ子になった構造を一段に平らにするのが flatMa...
Java

Java 逆引き集 | PartitioningBy / GroupingBy(Collectors) — 集計・グループ化

PartitioningBy / GroupingBy(Collectors) — 集計・グループ化Stream の終端操作 collect における定番が partitioningBy(2分割)と ...
Java

Java 逆引き集 | Stream.collect(Collectors.toList()/toSet()/toMap()) — ストリーム結果変換

Stream.collect(Collectors.toList()/toSet()/toMap()) — ストリーム結果変換Stream の終端操作である collect は、加工した要素を Lis...
Java

Java 逆引き集 | Collections.frequency / disjoint などユーティリティ — コレクション比較

Collections.frequency / disjoint などユーティリティ — コレクション比較配列やリスト、セット同士を「重複数の比較」「共通要素の有無」「部分一致」などで比べたいとき、j...
Java

Java 逆引き集 | CopyOnWriteArrayList(読み取り多い並列環境) — 読み取り優先

CopyOnWriteArrayList(読み取り多い並列環境) — 読み取り優先書き込み時に「配列のコピー」を作って更新し、読み取りや反復を常に安全にするのが CopyOnWriteArrayLis...
Java

Java 逆引き集 | ConcurrentLinkedQueue(ロックフリーキュー) — 高スループット

ConcurrentLinkedQueue(ロックフリーキュー) — 高スループット複数スレッドから同時に追加・取得しても待ち時間がほぼ発生しない、ロックフリーな待ち行列が ConcurrentLin...
Java

Java 逆引き集 | IdentityHashMap(== でキー比較) — 特殊用途

IdentityHashMap(== でキー比較) — 特殊用途IdentityHashMap は Java の特殊な Map 実装で、キーの比較に equals() ではなく ==(参照同一性) を...
Java

Java 逆引き集 | WeakHashMap の利用ケース(キャッシュと GC) — メモリリーク防止

WeakHashMap の利用ケース(キャッシュと GC) — メモリリーク防止WeakHashMap は「キーを弱参照で保持する Map」。キーへの強参照が外部で途切れると、GC(ガベージコレクショ...
Java

Java 逆引き集 | NavigableMap / NavigableSet(近傍検索) — 前後関係の取得

NavigableMap / NavigableSet(近傍検索) — 前後関係の取得NavigableMap と NavigableSet は、ソート済みのデータ構造に「近傍検索(前後関係の取得)」...
Java

Java 逆引き集 | Deque(ArrayDeque) — 両端操作、高速スタック/キュー

Deque(ArrayDeque) — 両端操作、高速スタック/キューJava の Deque(Double Ended Queue)は「両端から追加・削除できる」データ構造です。代表的な実装が Ar...
Java

Java 逆引き集 | PriorityQueue(優先度キュー) — ジョブスケジューラ

PriorityQueue(優先度キュー) — ジョブスケジューラ優先度で「先に処理すべきもの」から取り出せるのが PriorityQueue。デフォルトでは最小値が先頭の最小ヒープ構造で、自然順また...
Java

Java 逆引き集 | イミュータブルコレクション(List.of, Map.of) — 不変の集合

イミュータブルコレクション(List.of, Map.of) — 不変の集合Java 9 以降では、List.of, Set.of, Map.of などの イミュータブル(不変)コレクション を簡単に...
Java

Java 逆引き集 | MultiMap パターン(Map>) — 1対多管理

MultiMap パターン(Map<K, List<V>>) — 1対多管理Java の標準ライブラリには「MultiMap」というクラスはありません。しかし「1つのキーに複数の値を紐付けたい」場面は...
Java

Java 逆引き集 | Map のストリーム処理(entrySet→stream) — キー/値単位処理

Map のストリーム処理(entrySet→stream) — キー/値単位処理Mapは「キー→値」のペアを扱う構造。Stream APIと組み合わせると、条件抽出、並べ替え、集計が短く安全に書けます...
Java

Java 逆引き集 | Map.computeIfAbsent / compute / merge — 集計ロジック簡潔化

Map.computeIfAbsent / compute / merge — 集計ロジック簡潔化「存在チェック→取得→更新→再格納」の冗長なコードを、1行の原子操作で置き換えるのが computeI...
Java

Java 逆引き集 | Collections.synchronizedList 等(同期ラッパー) — 古い同期方法

Collections.synchronizedList 等(同期ラッパー) — 古い同期方法読み書きが同時に起きる環境で、既存の可変コレクションを「ひとまず安全に」使いたいときに使うのが同期ラッパー...
Java

Java 逆引き集 | Arrays クラスユーティリティ(sort / binarySearch) — 配列操作

Arrays クラスユーティリティ(sort / binarySearch) — 配列操作配列の並べ替えと検索は「まずソートしてから二分探索」が基本。Java の java.util.Arrays は...
Java

Java 逆引き集 | Collections.shuffle / sort / reverse — リスト操作ユーティリティ

Collections.shuffle / sort / reverse — リスト操作ユーティリティリストの「並び替え」「逆順」「ランダム化」を一発でやれるのが Collections ユーティリテ...
Java

Java 逆引き集 | Collections.unmodifiableList 等(読み取り専用ラッパー) — API 返却時の安全性

Collections.unmodifiableList 等(読み取り専用ラッパー) — API 返却時の安全性外部にコレクションを返すとき「勝手に書き換えられない」ようにするのが読み取り専用ラッパー...
Java

Java 逆引き集 | ConcurrentHashMap (スレッド安全な Map) — マルチスレッド環境

ConcurrentHashMap(スレッド安全な Map) — マルチスレッド環境並行処理で「キー→値」を共有したいなら、まずは ConcurrentHashMap。ロックを最小限に抑えた設計で、高...
Java

Java 逆引き集 | EnumMap / EnumSet の活用(enum 最適化) — 小さい高速マップ/集合

EnumMap / EnumSet の活用(enum 最適化) — 小さい高速マップ/集合Java には「列挙型(enum)」専用に最適化されたコレクションが用意されています。それが EnumMap ...
Java

Java 逆引き集 | HashSet の特性と重複排除 — 一意性保持

HashSet の特性と重複排除 — 一意性保持Java の HashSet は「重複を許さない集合」を表すクラスです。初心者が理解すべきポイントは「一意性保持」「順序が保証されない」「検索が速い」と...
Java

Java 逆引き集 | TreeMap(ソートされた Map) — 範囲検索

TreeMap(ソートされた Map) — 範囲検索TreeMap は Java の Map 実装のひとつで、キーを自動的にソートして保持するのが特徴です。初心者が理解すべきポイントは「キーが常に昇順...
Java

Java 逆引き集 | LinkedHashMap(挿入順/アクセス順保持) — LRU 実装の簡易版

LinkedHashMap(挿入順/アクセス順保持) — LRU 実装の簡易版Java の LinkedHashMap は、HashMap に「順序保持機能」を追加したものです。初心者が理解すべきポイ...
Java

Java 逆引き集 | HashMap の基本(キーのハッシュ化) — 索引付き検索

HashMap の基本(キーのハッシュ化) — 索引付き検索Java で「キーと値のペア」を効率的に管理する代表的なコレクションが HashMap です。初心者が理解すべきポイントは「キーをハッシュ化...
Java

Java 逆引き集 | LinkedList の使いどころ(頻繁な先頭/中間挿入) — キュー実装

LinkedList の使いどころ(頻繁な先頭/中間挿入) — キュー実装Java で「リスト構造」を扱うとき、ArrayList と LinkedList が代表的です。初心者が理解すべきポイントは...
Java

Java 逆引き集 | ArrayList の使いどころと性能(ランダムアクセス重視) — 一覧管理

ArrayList の使いどころと性能(ランダムアクセス重視) — 一覧管理Java で「一覧管理」をする際によく使うのが ArrayList。初心者がまず理解すべきは「どんな場面で使うか」「性能の特...
Excel VBA

Excel VBA 逆引き集 | 集計:高速集計テンプレ

高速集計テンプレ「明細が数万行あるけど、部署別や月次別に一瞬で集計したい」——そんな場面で役立つのが 配列+辞書 を使った高速集計テンプレです。セルを1行ずつ操作するのではなく、範囲を一度に配列に読み...
Excel VBA

Excel VBA 逆引き集 | 集約表の統合

集約表の統合「部署別・月次別などの“集約済み表”が複数シートや複数ブックに散らばっている。ひとつの総合表にまとめたい」——初心者でも壊れないテンプレを、同一レイアウトの縦結合、見出し名で列合わせ、キー...
Excel VBA

Excel VBA 逆引き集 | 連続データの集計

連続データの集計「連続した期間(連続日・連続行・連続カテゴリ)をひとまとまりに集計したい」「移動合計や累積で推移を見たい」場面で使えるテンプレを厳選しました。初心者でも壊れにくい実務向けのコードにして...
Excel VBA

Excel VBA 逆引き集 | サマリーレポート生成

サマリーレポート生成「明細データをまとめて、レポート用のサマリー表を自動生成したい」——そんな場面に使えるテンプレを初心者向けに整理しました。合計・件数・平均を部署別や月次別にまとめ、見やすいレポート...
Excel VBA

Excel VBA 逆引き集 | 集計行だけを抽出

集計行だけを抽出「小計行だけを別シートに抜き出したい」「アウトラインの小計行をコピーしたい」——Excelの内蔵Subtotalで作った行、カスタムで差し込んだ「○○ 小計」行、SUBTOTAL関数の...
Excel VBA

Excel VBA 逆引き集 | グラフの自動作成

グラフの自動作成「毎回のグラフ作りをボタンひとつで終わらせたい」——基本から応用まで、使い回せるテンプレをまとめました。棒・折れ線・円、複数系列、テーブル連動、カテゴリごとに量産、レイアウト・書式の自...
Excel VBA

Excel VBA 逆引き集 | クロス集計

クロス集計「行=カテゴリ」「列=カテゴリ」で値を並べるクロス集計は、ピボットが最短。見出しや書式を作り込みたいなら SUMIFS で行・列ループ、爆速・柔軟なら辞書で2軸集計して表を生成します。初心者...
Excel VBA

Excel VBA 逆引き集 | グループ集計

グループ集計「部署ごと」「商品ごと」「年月ごと」などのグループ単位で、合計・件数・平均をまとめる定番テンプレを、初心者でも壊れず使える形で整理しました。少量なら関数、柔軟・大量なら配列+辞書、見た目重...
Excel VBA

Excel VBA 逆引き集 | 小計行の生成

小計行の生成「部署ごと」「商品ごと」などのグループ単位で小計行を差し込むテンプレを、初心者でも壊さず使える形でまとめました。最短はExcelの内蔵「Subtotal」機能、柔軟に見た目を作り込みたいな...
Excel VBA

Excel VBA 逆引き集 | マスタとの集計統合

マスタとの集計統合「明細データにマスタの属性を付けてから集計したい」「コードから正式名称へ置き換えて集計したい」——VLOOKUP相当、INDEX/MATCH相当、辞書での高速ジョイン、未登録キーの扱...
Excel VBA

Excel VBA 逆引き集 | ピボットの自動作成

ピボットの自動作成「明細からピボットを毎回作るのが面倒」を一撃で解決するテンプレをまとめました。最短コード、テーブルを元データにした安全版、見出し名で柔軟に項目を設定、複数ピボットの一括生成まで、初心...
Excel VBA

Excel VBA 逆引き集 | ピボットの自動更新

ピボットの自動更新ピボットテーブルは便利ですが「元データを更新したらピボットも自動で更新したい」という場面が多いです。初心者でも安心して使えるように、最短コードからイベント連動、複数ピボット対応までテ...
スポンサーリンク