萌えハッカーニュースリーダー

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

出典: https://donraab.medium.com/go-primitive-in-java-or-go-in-a-box-c26f5c6d7574
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

大丈夫、私にはデバッグという名の魔法があるからの!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search