Java

スポンサーリンク
Java

Java Tips | 日付・時間:秒変換

秒変換で何をしたいのかイメージする「DBに“1970年からの秒”で保存されている」「外部APIがエポック秒で送ってくる」「処理時間を秒でログに出したい」。こういうときに必要になるのが、日付・時間と「秒...
Java

Java Tips | 日付・時間:ミリ秒変換

「ミリ秒変換」で何をしたいのかイメージする「処理時間をミリ秒で計測したい」「DBには long のミリ秒で保存されている」「外部APIが“1970年からのミリ秒”で送ってくる」。こういうときに必要にな...
Java

Java Tips | 日付・時間:ISO変換

「ISO変換」とは何をするものか「API は ISO 形式で日時を返してくる」「ログを ISO 形式で出したい」「他言語ともやり取りしたい」そんなときに出てくるキーワードが ISO-8601 です。I...
Java

Java Tips | 日付・時間:フォーマット共通化

なぜ「フォーマット共通化」が重要なのか同じシステムの中で、画面Aは「2025/03/26」、画面Bは「2025-03-26」、ログは「2025-03-26T10:00:00Z」――こういうバラバラな状...
Java

Java Tips | 日付・時間:JST変換

JST変換のゴールイメージ「アプリは日本時間で動いている」「外部APIはUTCで返してくる」「DBにはUTCで保存したいけど画面はJSTで見せたい」。こういうときに必要になるのが JST(日本標準時)...
Java

Java Tips | 日付・時間:UTC変換

UTC変換のゴールイメージ「アプリは日本時間で動いているけど、DBには UTC で保存したい」「ログは全部 UTC に統一したい」「外部APIは UTC で返してくる」業務システムで“時間”をちゃんと...
Java

Java Tips | 日付・時間:タイムゾーン変換

タイムゾーン変換のゴールイメージ「サーバは UTC、ユーザーは日本時間」「海外拠点はロサンゼルス時間」「ログは全部 UTC で残したい」業務システムで“時間”を扱うとき、ほぼ必ず出てくるのが「タイムゾ...
Java

Java Tips | 日付・時間:日付丸め

「日付丸め」とは何をするものか「2025-03-26 を“月初”にそろえたい」「日付を“週単位”にまとめたい」「分析用に“日単位”までに丸めたい」こういうときに出てくるのが「日付丸め」です。日付丸めは...
Java

Java Tips | 日付・時間:時間丸め

「時間丸め」とは何をするものか「10:03 を 5 分単位に丸めて 10:05 にしたい」「ログの時刻を“分単位”にそろえたい」「勤務時間を 15 分単位で計算したい」こういうときに出てくるのが「時間...
Java

Java Tips | 日付・時間:経過時間

経過時間のゴールイメージ「処理に何秒かかった?」「ログインから何時間経過した?」「締切まであと何時間?」業務システムでは、“2つの日時の差”=経過時間を扱う場面がとても多いです。ここでまず押さえてほし...
Java

Java Tips | 日付・時間:経過日数

経過日数のゴールイメージ「申込日から何日経った?」「納期まであと何日?」「プロジェクト開始からの経過日数は?」業務システムだと、“2つの日付の差”=経過日数を出す場面が本当に多いです。ここでまず押さえ...
Java

Java Tips | 日付・時間:年齢計算

年齢計算のゴールイメージ「生年月日から現在の年齢を出したい」「基準日時点での年齢を知りたい」業務システムだと、会員管理・保険・年齢制限チェックなどで“年齢”はよく出てきます。ここで一番やってはいけない...
Java

Java Tips | 日付・時間:祝日判定

祝日判定のゴールイメージ「この日付は祝日か?」「祝日は営業日から除外したい」「祝日は締切をずらしたい」業務システムでは、祝日判定はかなりの頻度で登場します。ここでまず押さえてほしい現実があります。祝日...
Java

Java Tips | 日付・時間:営業日判定

営業日判定のゴールイメージ「この日付は営業日か?」「締切日が休業日のときは翌営業日にずらしたい」業務システムでは、こういう“営業日判定”が本当に頻繁に出てきます。ここで大事なのは、営業日=「土日以外」...
Java

Java Tips | 日付・時間:曜日取得

曜日取得のゴールイメージ「2025-03-26 は何曜日?」「この日付が土日かどうか知りたい」業務システムだと、営業日判定・カレンダー表示・締切日のチェックなどで“曜日”は頻出です。ここでやってはいけ...
Java

Java Tips | 日付・時間:年末取得

「年末取得」は“その年の最後の日を意味でつかまえる”こと業務システムでは、「今年の年末」「会計年度の最終日」「前年の年末」みたいな話がよく出てきます。ここでやってはいけないのは、「12 月 31 日で...
Java

Java Tips | 日付・時間:年初取得

「年初取得」は“その年の1月1日を意味で取り出す”こと業務システムだと、「今年の年初」「会計年度の開始日」「前年の年初」みたいな話がよく出てきます。ここでやってはいけないのは、month = 1; d...
Java

Java Tips | 日付・時間:月末取得

「月末取得」は“その月の最後の日を安全につかまえる”こと業務システムでは、「今月の月末」「請求月の月末」「締め月の月末」が頻出します。ここでやってはいけないのは、「31 日で固定」「30 日で固定」「...
Java

Java Tips | 日付・時間:月初取得

「月初取得」は“その月の1日を安全に取り出す”こと業務システムでは、「今月の月初」「請求月の月初」「締め月の月初」をよく使います。ここでやってはいけないのは、day = 1; のように自分で日付をいじ...
Java

Java Tips | 日付・時間:日付減算

日付減算の本質は「過去にさかのぼるカレンダー計算を任せること」日付減算は、「今日から 7 日前」「3 ヶ月前」「1 年前の同じ日」といった“カレンダー上で過去にさかのぼる”計算です。ここでも一番やって...
Java

Java Tips | 日付・時間:日付加算

「日付加算」は“カレンダーの面倒を Java に任せる”こと日付加算は、「今日から 7 日後」「月末から 1 日後」「3 ヶ月後の同じ日」といった“カレンダー計算”をコードでやることです。これを自前で...
Java

Java Tips | 日付・時間:日時→文字列

「日時→文字列」は“見せ方を決める”作業日時オブジェクト(LocalDate や LocalDateTime など)は、そのままだと「内部的に意味のある値」ですが、人間には少し分かりにくいことがありま...
Java

Java Tips | 日付・時間:文字列→日時

文字列→日時変換の全体イメージ「String で受け取った日付・時刻」を、そのまま文字列のまま扱うと、比較・加算・バリデーションがすべて自前実装になってしまいます。そこでやるべきことはシンプルで、「文...
Java

Java Tips | 日付・時間:Calendar変換

Calendar は「古い日付 API」だが、変換パターンを覚えれば怖くないjava.util.Calendar は、Date と同じく“古い日付 API”です。今の Java では LocalDat...
Java

Java Tips | 日付・時間:Date変換

古い Date と新しい java.time を「つなぐ」という発想java.util.Date は、昔からある「日時クラス」です。でも今の Java では、LocalDate / LocalTime...
Java

Java Tips | 日付・時間:Instant変換

Instant は「世界共通の“瞬間”を表すタイムスタンプ」Instant は、「UTC を基準にした、世界共通の“ある瞬間”」 を表すクラスです。「1970-01-01T00:00:00Z(UTC)...
Java

Java Tips | 日付・時間:ZonedDateTime生成

ZonedDateTime は「タイムゾーン付きの日時」ZonedDateTime は、「日付(年月日)+時刻(時分秒)+タイムゾーン」 をまとめて扱うクラスです。LocalDateTime は「どこ...
Java

Java Tips | 日付・時間:LocalDateTime生成

LocalDateTime は「日付+時刻」をまとめて扱うクラスLocalDateTime は、「年月日」と「時分秒(ナノ秒まで)」を一つにまとめて扱うクラスです。 タイムゾーンは持たないので、「ある...
Java

Java Tips | 日付・時間:LocalTime生成

LocalTime は「時刻だけ」を扱うクラスLocalTime は、「時・分・秒だけ」を扱うクラスです。日付(年月日)もタイムゾーンも持ちません。「営業開始時刻(09:00)」「締切時刻(17:30...
Java

Java Tips | 日付・時間:LocalDate生成

LocalDate は「日付だけ」を扱うクラスLocalDate は、「年月日だけ」を扱うクラスです。時刻(時分秒)もタイムゾーンも持ちません。「請求日」「締切日」「誕生日」「営業日」など、“日付だけ...
Java

Java Tips | コレクション:集合演算

「集合演算」は“重複なしの集まり”同士を比べる道具Java の Set は、「重複を許さない集まり」です。HashSet や LinkedHashSet、TreeSet などが代表ですね。業務では、「...
Java

Java Tips | コレクション:BiMap実装

BiMap は「キーと値の両方から引ける Map」普通の Map<K, V> は「キー → 値」の片方向だけです。でも業務では、「値からも逆引きしたい」場面がよく出てきます。HTTPステータスコード ...
Java

Java Tips | コレクション:MultiMap実装

MultiMap は「1つのキーに“複数の値”をぶら下げる Map」普通の Map<K, V> は「キー1つにつき値1つ」です。でも業務では、「キー1つに対して値が複数ある」場面がよく出てきます。部署...
Java

Java Tips | コレクション:PriorityQueue利用

PriorityQueue は「優先度の高いものから順に取り出せるキュー」PriorityQueue は、普通のキューと違って「入れた順」ではなく「優先度の高い順(または小さい順)」で取り出せるキュー...
Java

Java Tips | コレクション:Stack代替

「Stack代替」は“古い Stack を捨てて、Deque に乗り換える”という発想Java には java.util.Stack というクラスがありますが、今の実務では 「Stack は使わず、D...
Java

Java Tips | コレクション:Deque操作

Deque は「両端から出し入れできるキュー」Deque(デック)は “Double Ended Queue” の略で、「先頭」と「末尾」の両方から要素を出し入れできるコレクションです。普通のキューは...
Java

Java Tips | コレクション:CopyOnWrite利用

CopyOnWrite は「書き込みのたびに“丸ごとコピー”して安全を買う」仕組みCopyOnWrite 系コレクション(CopyOnWriteArrayList / CopyOnWriteArray...
Java

Java Tips | コレクション:同期ラッパー

同期ラッパーは「既存のコレクションを“とりあえず安全にする”ための包み紙」同期ラッパー(synchronized wrapper)は、Collections.synchronizedList や Co...
Java

Java Tips | コレクション:スレッドセーフMap

「スレッドセーフMap」は“同時に触られても壊れない辞書”業務システムでは、「ユーザーID→セッション情報」「商品コード→商品情報」「設定キー→設定値」のように、Map を共有して使う場面が本当に多い...
Java

Java Tips | コレクション:スレッドセーフList

「スレッドセーフList」は“同時に触られても壊れないリスト”業務システムでは、複数スレッドから同じ List にアクセスする場面が普通に出てきます。ログを貯める、イベントを溜める、キャッシュ的に使う...
Java

Java Tips | コレクション:固定長キュー

固定長キューは「常に“最後のN件だけ”を覚えておく箱」固定長キューは、「新しいものをどんどん入れるけれど、サイズは最大N件まで」「あふれたら“一番古いもの”から自動的に捨てる」というルールを持ったキュ...
Java

Java Tips | コレクション:LRUキャッシュ

LRUキャッシュは「よく使うものだけを手元に置き、古いものから捨てる」箱業務システムでは、「毎回DBに取りに行くのは重いけど、全部メモリに載せるのもキツい」みたいな場面がよく出てきます。そこで出てくる...
Java

Java Tips | コレクション:Enumコード検索

Enumコード検索は「外から来たコード値を“正しいEnum”に変換する」技業務システムでは、DBやAPI、設定ファイルなどから「コード値」が文字列や数値で飛んできます。"N" なら新規、"P" なら処...
Java

Java Tips | コレクション:Enum名前一覧

Enum名前一覧は「コード上の識別子を“文字列の一覧”として取り出す」技Enum は「定数の集合」ですが、その一つ一つには「名前(識別子)」があります。Status.NEW の NEW の部分です。業...
Java

Java Tips | コレクション:Enum一覧取得

Enum一覧取得は「コードに埋めた“選択肢”を、動的に取り出す」技Enum は「定数の集合」を型として表現する仕組みです。ステータス、区分コード、画面のプルダウン候補など、業務システムで大活躍します。...
Java

Java Tips | コレクション:Stream→Optional

Stream→Optional は「“0件かもしれない結果”を安全に受け取る」技Stream は「0件以上の要素の流れ」です。でも業務では、「この条件に合うものを“1件だけ”取りたい」「見つからないか...
Java

Java Tips | コレクション:Optional→Stream

Optional→Stream は「あるかもしれない1件」を“流れ”に乗せる技Optional は「値があるかもしれない/ないかもしれない」を表す箱です。Stream は「0件以上の要素の流れ」です。...
Java

Java Tips | コレクション:nullセーフStream

「nullセーフStream」は「nullかもしれないコレクションを、そのままStreamで扱う」技業務コードでは、本当は良くないけれど、現実として「null が返ってくるコレクション」がたくさんあり...
Java

Java Tips | コレクション:distinctByKey

distinctByKey は「“このキーで一意”をコードに刻む」技Stream の distinct() は、「要素そのものが同じかどうか」で重複を消します。でも業務では、「ユーザーIDが同じなら重...
Java

Java Tips | コレクション:join処理

join処理は「バラバラの要素を“1本の文字列”にまとめる」技業務システムでは、「IDをカンマ区切りでログに出したい」「SQLの IN ('A','B','C') を組み立てたい」「画面に 山田 / ...
Java

Java Tips | コレクション:zip処理

zip処理は「2つの列を“ペアの列”にする」技zip(ジップ)処理は、「2つのコレクションを、同じ位置同士でペアにしていく」操作です。名前のリスト点数のリストこの2つを「名前+点数」のペアにしたい——...
Java

Java Tips | コレクション:インデックス付きループ

インデックス付きループは「位置情報をちゃんと意識して回す」技for (T x : list) の拡張 for 文はシンプルで読みやすいですが、「何番目か(インデックス)」が欲しくなった瞬間に、ちょっと...
Java

Java Tips | コレクション:ページング

ページングは「長い一覧を“ちょうどいい一枚”に切り分ける」技業務システムでは、「検索結果が1万件あります」とか普通に起こります。でも画面に1万件は出せませんよね。だから「1ページ20件」「3ページ目を...
Java

Java Tips | コレクション:Stream例外ラップ

「Stream例外ラップ」は「チェック例外を“Streamで扱える形”に着替えさせる」技Stream の map や forEach に渡すラムダは、基本的に「チェック例外を投げられない」制約がありま...
Java

Java Tips | コレクション:並列Stream制御

並列Stream制御は「速くしたいけど、暴れさせたくない」技Stream にはstream()(普通の順次処理)とparallelStream()(並列処理)の2つの世界があります。「CPUコアを全部...
Java

Java Tips | コレクション:Stream生成

Stream生成は「データに“流れ”をつける」入り口Stream は「コレクションや配列などの要素を、流れとして扱うためのビュー」です。filter や map、collect などの“Stream ...
Java

Java Tips | コレクション:List→配列

List→配列変換は「柔らかい入れ物を“カチッとした形”にする」技Java では、業務ロジックは List で書きたいけれど、古いライブラリやフレームワークの引数が「配列(String[] など)」を...
Java

Java Tips | コレクション:配列→List

配列→List変換は「生の配列を“扱いやすいコレクション”に変える」技Java には「配列」と「List」という、よく似ているけれど性格の違う入れ物があります。配列:String[] など。古くからあ...
Java

Java Tips | コレクション:List→Map変換

List→Map変換は「一覧を“引ける辞書”に変える」技List<T> は「順番付きのただの並び」です。Map<K, V> は「キーから値を素早く引ける辞書」です。業務では、DB から List<Us...
Java

Java Tips | コレクション:安全get

「安全get」は「落ちてもおかしくない場所に、クッションを敷いておく」技List#get や Map#get は、とてもよく使う基本メソッドですが、そのまま使うと、意外と簡単に例外や NullPoin...
スポンサーリンク