・ApacheCommonsって何?
Apache CommonsはApacheSoftwareFoundationが中心になって管理を行っているJavaのライブラリプロジェクト。「文字列のsplit」や「ファイルの読み書き」などに関するイディオムをもっとシンプルに実装するのを助けるためのライブラリ群って感じでしょうか。Apache Commonsのライブラリで有名なのは
commons-io
commons-lang
commons-net
とかでしょうか。
・Guavaって何?
Googleが開発したJavaのライブラリ。「文字列のsplit」や「ファイルの読み書き」、「コレクションに関する処理」などに関するイディオムをもっとシンプルに実装するのを助けるためのライブラリ群。…ってこれApacheCommonsとほとんど役割とかスタンスが一緒。
・どっちも似てるけどどっちを使えばよい???
いろいろ調べてみたところ、Guavaの方がジェネリクス対応しているからー、みたいにかかれててGuava押しな感じがただよっている。。。しかし、ジェネリクス対応しているうまみを感じるようなものってコレクション系ぐらいか?もっと簡単な「文字列のsplit」に関していうと、実はcommons-ioの方が約4倍速かったんだよなー。パフォーマンスって切り口で考えるとやっぱりcommons-ioに軍配が上がってしまう。
・ぐだぐだ言っているけど結論は??
はい、まとめます。
文字列操作とかシンプルなファイル読み書きを楽にしたい目的ならcommons-ioを使うべき、
コアなコレクション系のAPI使いたいならGuavaって感じです。
P.S. 他にもいろいろな情報お持ちでしたらコメントくださいまし。あと、この記事に関するダメ出しも受け付けます。