1. ホーム

[解決済み】Google Guava vs Apache Commons【終了しました

2022-04-09 03:44:53

質問

を探していたところ 双方向地図 をJavaで実装したところ、この2つのライブラリに行き当たりました。

どちらもフリーで、私が探していた双方向マップの実装を持ち(ApacheではBidiMap、GoogleではBiMap)、驚くほどほぼ同じサイズ(Apache 493kB、Google 499kB)[編:もはや真実ではない!]、あらゆる点で私にはかなり似ていると思われる。

どれを選べばいいのか、その理由は?他に同等の代替品(無料で、少なくとも双方向マップが必要)はありますか?私は最新のJava SEで作業しているので、人為的にJava 5に制限したりする必要はありません。

どのように解決するのですか?

私の意見では、より良い選択は グアバ (旧名称:Googleコレクション)。

  • よりモダンになった(ジェネリックがある)
  • Collections API の要件に完全に準拠している
  • 活発にメンテナンスされている
  • CacheBuilder と、その前身である MapMaker は、とにかくすごい

Apache Commons Collectionsも良いライブラリですが、長い間ジェネリック対応版を提供できていません(これは メジャー コレクションAPIの欠点だと思う)、そして一般的にはメンテナンス/あまり手をつけないモードにあるようだ。 <サブ 最近、Commons Collectionsは再び勢いを取り戻していますが、まだまだ追いつくことが必要です。 .

もし、ダウンロードサイズ、メモリフットプリント、コードサイズが問題であれば、Apache Commons Collectionsは、他のライブラリと共通の依存関係を持つので、より良い候補になるかもしれません。というのも、このライブラリは他のライブラリと共通の依存関係にあるため、自分のコードで使用する場合、追加の依存関係を追加することなく使用できる可能性があります。編集:この特定の利点は、現在では部分的に覆されています。 ではなく Apache Commons Collectionsのことです。