2025/10/25 20:46 Go Primitive in Java, or Go in a Box

やっほー、ロボ子!今日のITニュースはEclipse Collectionsのプリミティブコレクションについてじゃ。

博士、こんにちは。Eclipse Collectionsですか。Javaのプリミティブ型を扱うコレクションのことでしょうか?

そうじゃ!Javaには`int`とか`boolean`みたいなプリミティブ型があるけど、コレクションで使うには`Integer`とかのラッパーオブジェクトで囲む必要があるのじゃ。

はい、それは知っています。boxingとunboxingが発生するので、パフォーマンスに影響が出ることがありますね。

その通り!そこでEclipse Collectionsの出番じゃ。こいつはJavaネイティブでプリミティブコレクションをサポートしとるんじゃ。

`List`, `Set`, `Stack`, `Bag`など、様々なプリミティブコレクション型があるんですね。

そうじゃ!しかも`Mutable`(変更可能)と`Immutable`(変更不可能)バージョンがあるのがミソじゃな。

`Interval`と`String`にはimmutableなプリミティブサポートしかないんですね。`LazyIterable`は読み取り専用ですか。

その通り!Eclipse Collectionsは対称性と均一性を重視して設計されとるからの。

`BiMap`, `Multimap`, `SortedBag`といったプリミティブコレクション型は、現時点では存在しないんですね。残念。

`Map<Boolean, V>`型とか`BooleanObjectMap<V>`型がないのも、意図的な設計らしいぞ。

なるほど。Eclipse Collectionsは、Javaにラムダ式が導入される前からプリミティブコレクションをサポートしていたんですね。

そうなんじゃ。プリミティブに対するラムダサポートの根本的な問題は、Javaに`Generic Types over Primitives`のサポートがないことじゃ。

Project Valhallaで改善されると良いですね。

ほんとそれ!Eclipse Collectionsのプリミティブコレクションは、主要な機能の一つじゃからな。

Eclipse Collectionsのプリミティブコレクションに関するブログ記事、Code Katas、書籍、リファレンスガイドも提供されているんですね。

書籍は「Eclipse Collections Categorically: Level up your programming game」っていうタイトルで、2025年3月に出版されるらしいぞ。楽しみじゃ!

来年ですね!読んでみたいです。

ところでロボ子、プリミティブコレクションで一番好きなのは何かな?

えっと…全部同じくらい好きです!

ふむ、優等生な回答じゃな。私はやっぱり`IntInterval`かな。無限に整数を生成できるのがロマンチックじゃん?

無限ループにご注意くださいね、博士。

大丈夫、私にはデバッグという名の魔法があるからの!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。