Eclipse Collections 10.0がリリースされました #EclipseCollections

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

f:id:itohiro73:20190804203215p:plain
The features you want, with the collections you need.

コントリビューターの皆さんありがとうございました

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つの記事に分けて機能の詳細を紹介していきます。本記事では、新機能のサマリーを紹介するにとどめます。

新機能のサマリー

  1. MultiReaderList/Bag/Set に特化したInterface
  2. プリミティブListからプリミティブStreamを生成する実装
  3. toMapにおけるターゲットMapのサポート
  4. MutableMapIterable.removeAllKeysの実装
  5. RichIterable.toBiMapの実装
  6. Multimap.collectKeyMultiValues の実装
  7. コレクションファクトリにおけるfromStream(Stream)の実装
  8. LazyIterate.cartesianProductの実装
  9. プリミティブMapへのupdateValuesメソッドの追加
  10. MutableMultimap.getIfAbsentPutAllの実装
  11. Bag.collectWithOccurrencesの実装
  12. プリミティブのIterableへのreduceとreduceIfEmptyの追加
  13. プリミティブ用の<type1><type2>To<type1>Functionの追加
  14. プリミティブMapへのof/withInitialCapacityメソッドの追加
  15. RichIterable.countByEachの実装
  16. UnifiedSetWithHashingStrategy.addOrReplaceの実装
  17. UnmodifiableMutableOrderedMapの実装
  18. ミュータブルなプリミティブMap上でのwithAllKeyValuesの実装
  19. IterableからPrimitivePrimitive/PrimitiveObject/ObjectPrimitiveMapを生成する機能の実装
  20. HashingStrategySets.of/withInitialCapacityの実装
  21. RichIterable.getAnyの実装
  22. プリミティブのハッシュデータ構造におけるresize/rehashメソッドの刷新と標準化
  23. Iterable<BoxedPrimitive>からPrimitiveStack/Bag/List/Setへ変換するファクトリメソッドの実装
  24. Multimapsファクトリクラス内の'ImmutableSortedBagMultimapFactory`の実装
  25. MapをパラメータにとるMapファクトリメソッドの実装
  26. MultableMultimap.putAllPairs/addメソッドパラメーターへのワイルドカード型の導入

新機能については 最新のJavaDocもご覧ください。

機能外での改善点

ライブラリ本体の機能追加以外にも、さまざまな改善がなされています。 1. テストカバレッジの改善 2. ビルドの改善 3. コードの重複の削減 4. 非推奨なクラスの削除 5. ジェネリクスの改善 6. 新しいベンチマークテストの追加 7. その他いろいろ!

ありがとうございます

すべてのコントリビューターとコミッターを代表して... Eclipse Collectionsを使っていただきありがとうございます!! 10.0リリースでの新しい機能と改善を楽しんでいただけると幸いです。

これら新機能の詳細は例をつけて追って記事化していきますのでお楽しみに!

Eclipse Collectionsはコントリビューションを受け付けています!どこから始めていいかよくわからないという方はitohiro73までDMいただければ喜んでガイドさせていただきます。

もしライブラリを気に入っていただけて、われわれに知らせたいという方は、Twitterでハッシュタグ#EclipseCollectionsをつけてつぶやいていただいたり、もしくはGitHubレポにスターをつけていただけるとめっちゃよろこびますのでどうぞよろしくお願いします!!