Guava– tag –
-
【Guava】RangeMapで範囲と値をスマートに管理
Javaで開発をしていると、「数値の範囲に応じて異なる値を割り当てたい」場面によく出会います。たとえば、スコアに応じた成績判定、時間帯ごとの料金設定、年齢別の区分けなどです。 こうした処理をif-elseやswitch文で実装すると、条件が増えるにつれて... -
【Guava】RangeSetで範囲集合をスマートに管理
数値の範囲を扱う処理は、意外と多くの開発シーンで登場します。たとえば、予約済みのIDの範囲を管理したり、使用中のポート番号を追跡したり、特定の時間帯の重複チェックを行ったり――こうした範囲管理を単純なListやSetで実装しようとすると、重複検出や... -
【Guava】Rangeで範囲チェックを簡潔に実装
Javaで「値がある範囲に含まれているか」をチェックする場面はよくあります。たとえば、年齢が18歳以上か、日付が有効期限内か、スコアが一定の範囲内か――こうした判定には、一般的に if (value >= 1 && value <= 10) のような条件分岐が使... -
【Guava】Multimapで1対多のマッピングを実現
Javaで開発をしていると、Map<K, V>を使ってデータを管理する場面はよくあります。しかし、「1つのキーに対して複数の値を持たせたい」と思ったことはないでしょうか? たとえば、ユーザーIDに対して複数のタグを付けたり、商品カテゴリごとに複数の... -
【Guava】Multisetで要素の出現回数を管理
Javaで「要素の出現回数」を集計したい場面はよくあります。たとえば文字列の頻度やイベントの回数を数える場合、通常は Map<String, Integer> を使って自前でカウント処理を書くことになります。しかし、この方法は初期化や存在チェック、加算処理... -
【Guava】ClassToInstanceMapの使い方
Javaで複数の型に対応したインスタンスを一元管理したい場合、通常は Map<Class<?>, Object> を使うことになります。しかしこの方法では、毎回キャストが必要だったり、型の整合性がコンパイル時に保証されなかったりと、型安全性に問題があり... -
【Guava】BiMapで双方向マッピングを実現する方法
Javaでデータのマッピングを行う際、通常はMapを使ってキーから値を取得します。しかし、「値からキーを逆引きしたい」という場面に遭遇したことはありませんか? そんな課題を解決するのが、GoogleのGuavaライブラリが提供するBiMap(双方向マップ)です... -
【Guava】Stringsクラスの使い方
Javaで文字列を扱う際、「nullチェックが面倒」「空文字との判別が煩雑」「フォーマット処理が冗長」など、細かな処理に手間取った経験はありませんか? こうした煩わしさを解消し、コードをより安全かつ簡潔に書けるようにしてくれるのが、Googleが提供す... -
【Guava】Stopwatchで処理時間を簡単計測
Javaで処理時間を測定したい場合、System.nanoTime() や Instant / Duration などの標準APIを使うのが一般的です。しかし、こうした手法はコードが冗長になりがちで、読みやすさにも課題があります。 そんな中、処理時間の測定をもっと手軽に、そして明確... -
【Guava】StandardSystemPropertyの使い方
Javaでシステムプロパティを取得する際には、System.getProperty("キー") を直接呼び出すのが一般的です。しかし、この方法ではキー名を文字列でハードコードする必要があるため、スペルミスや定数の重複、可読性の低下といった問題が起こりがちです。 こ...
12