Eclipse Collections 10.0がリリースされました #EclipseCollections
本記事はDonald Raab氏による Eclipse Collections 10.0 Released - Oracle Developers - Medium を元にした日本語版の記事です。日本語でわかりやすい情報となるように適宜編集しており、日本語訳とは違って必ずしも元の文章を訳したものではありません(本人にrewriteの許可をもらっております)。原文を参考にしたい場合は上記リンクからどうぞ。

コントリビューターの皆さんありがとうございました
Eclipse Collections の10.0は2019年の7月にリリースされ、前回の9.2リリースから1年4ヶ月となるメジャーバージョンのリリースとなります。9.xバージョンのリリースは非常に機能が豊富で、コミュニティからたくさんのコントリビューションがあったんですが、10.0ではそれを超えるものになりました!なんと、10.0のリリースでは実に18人ものコントリビューターが機能追加をしてくれており、着実にOSSとしての成長を歩んでおります。貴重な時間を費やしてEclipse Collectionsの機能追加や品質改善にご協力いただいたコントリビューター皆さんに感謝の気持ちでいっぱいです!ありがとうございました!!
ひとつの記事にまとめるには機能が多すぎるw
Eclipse Collectionsの10.0は非常に多くの新機能が含まれており、ひとつの記事に収めるには多すぎるため、今後3つの記事に分けて機能の詳細を紹介していきます。本記事では、新機能のサマリーを紹介するにとどめます。
新機能のサマリー
MultiReaderList/Bag/Setに特化したInterface- プリミティブListからプリミティブStreamを生成する実装
toMapにおけるターゲットMapのサポートMutableMapIterable.removeAllKeysの実装RichIterable.toBiMapの実装Multimap.collectKeyMultiValuesの実装- コレクションファクトリにおける
fromStream(Stream)の実装 LazyIterate.cartesianProductの実装- プリミティブMapへの
updateValuesメソッドの追加 MutableMultimap.getIfAbsentPutAllの実装Bag.collectWithOccurrencesの実装- プリミティブのIterableへの
reduceとreduceIfEmptyの追加 - プリミティブ用の
<type1><type2>To<type1>Functionの追加 - プリミティブMapへの
of/withInitialCapacityメソッドの追加 RichIterable.countByEachの実装UnifiedSetWithHashingStrategy.addOrReplaceの実装UnmodifiableMutableOrderedMapの実装- ミュータブルなプリミティブMap上での
withAllKeyValuesの実装 IterableからPrimitivePrimitive/PrimitiveObject/ObjectPrimitiveMapを生成する機能の実装HashingStrategySets.of/withInitialCapacityの実装RichIterable.getAnyの実装- プリミティブのハッシュデータ構造における
resize/rehashメソッドの刷新と標準化 Iterable<BoxedPrimitive>からPrimitiveStack/Bag/List/Setへ変換するファクトリメソッドの実装Multimapsファクトリクラス内の'ImmutableSortedBagMultimapFactory`の実装MapをパラメータにとるMapファクトリメソッドの実装MultableMultimap.putAllPairs/addメソッドパラメーターへのワイルドカード型の導入
新機能については 最新のJavaDocもご覧ください。
機能外での改善点
ライブラリ本体の機能追加以外にも、さまざまな改善がなされています。 1. テストカバレッジの改善 2. ビルドの改善 3. コードの重複の削減 4. 非推奨なクラスの削除 5. ジェネリクスの改善 6. 新しいベンチマークテストの追加 7. その他いろいろ!
ありがとうございます
すべてのコントリビューターとコミッターを代表して... Eclipse Collectionsを使っていただきありがとうございます!! 10.0リリースでの新しい機能と改善を楽しんでいただけると幸いです。
これら新機能の詳細は例をつけて追って記事化していきますのでお楽しみに!
Eclipse Collectionsはコントリビューションを受け付けています!どこから始めていいかよくわからないという方はitohiro73までDMいただければ喜んでガイドさせていただきます。
もしライブラリを気に入っていただけて、われわれに知らせたいという方は、Twitterでハッシュタグ#EclipseCollectionsをつけてつぶやいていただいたり、もしくはGitHubレポにスターをつけていただけるとめっちゃよろこびますのでどうぞよろしくお願いします!!