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レポにスターをつけていただけるとめっちゃよろこびますのでどうぞよろしくお願いします!!