タグ付けされた質問 「guava」

JavaおよびAndroid開発用のGoogleのコアJavaライブラリ。

5
Google Guava対Apache Commons [終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私はJavaで双方向のマップ実装を探していて、次の2つのライブラリに出くわしました。 Google Guava(以前の「Googleコレクション」) Apache Commonsコレクション どちらも無料で、私が探していた双方向マップ実装(ApacheのBidiMap、GoogleのBiMap)があり、驚くほどほぼ同じサイズです(Apache 493 kB、Google 499 kB)[ed .: no true true!]すべての点で私にかなり似ています。 どちらを選択する必要がありますか。その理由は何ですか。他に同等の代替案がありますか(無料で、少なくとも双方向マップが必要です)?私は最新のJava SEを使用しているため、Java 5などに人工的に制限する必要はありません。

3
Guava ImmutableMapの初期化
Guavaには、マップを初期化するための便利なショートカットが用意されています。ただし、マップを9つのエントリに初期化すると、次のコンパイラエラー(Eclipse Indigo)が表示されます。 of(K, V, K, V, K, V, K, V, K, V)タイプのメソッドImmutableMapは引数に適用できません (String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String) ImmutableMap<String,String> myMap = ImmutableMap.of( "key1", "value1", "key2", "value2", "key3", "value3", "key4", "value4", "key5", "value5", "key6", "value6", "key7", "value7", "key8", "value8", …
140 java  dictionary  guava 

8
Guavaライブラリ:その最も便利な機能や隠された機能は何ですか?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 8年前に閉鎖。 私はのクイックスキャンがあったグァバAPIとそれが提供する新しいコレクション型を(MultimapそしてBiMapたとえば便利表示されます)と私は、プロジェクトの(S)I作業でライブラリを含むを考えています。 ただし、ライブラリに大きなメリットがなく、機能を学習することは貴重な時間を浪費する場合は、ライブラリを自由に含めることを躊躇します。 プロジェクトにGuavaライブラリーを含めましたか?予期しない方法でそれが役立つことがわかりましたか?将来も使用しますか?その主なメリット/時間の節約は何ですか?その隠された機能は何ですか?
131 java  guava 

8
Javaで連続した整数のリストまたは配列を生成するにはどうすればよいですか?
短いと甘い生成する方法があるList<Integer>、または多分 Integer[]またはint[]、いくつかの連続した値でstartの値end値は? つまり、次のものよりも短いが1に相当するものです。 void List<Integer> makeSequence(int begin, int end) { List<Integer> ret = new ArrayList<>(end - begin + 1); for (int i=begin; i<=end; i++) { ret.add(i); } return ret; } グアバの使用は問題ありません。 更新: パフォーマンス分析 この質問は、ネイティブJava 8とサードパーティのライブラリの両方を使用して、いくつかの良い答えを受け取ったので、すべてのソリューションのパフォーマンスをテストすると思いました。 最初のテスト[1..10]は、次のメソッドを使用して、10要素のリストの作成をテストするだけです。 classicArrayList:私の質問で上記のコード(そして基本的にはadarshrの回答と同じ)。 eclipseCollections:Eclipseコレクション8.0を使用して、以下のドナルドの回答で提供されるコード。 guavaRange:以下のdavebの回答で与えられたコード。技術的には、これはaを作成するのList<Integer>ではなく、aを作成します。ただし、順序どおりにContiguousSet<Integer>実装さIterable<Integer>れるため、ほとんどの場合私の目的で機能します。 intStreamRange:以下のVladimirの回答に記載されているコードを使用IntStream.rangeClosed()します。これはJava 8で導入されました。 streamIterate:Java 8で導入された機能も使用する、以下のCatalinの回答に示されているコードIntStream 上記のすべてのサイズ10のリストについて、1秒あたりのキロオペレーションの結果を次に示します(数値が大きいほど優れています)。 ...そしてサイズが10,000のリストの場合: その最後のチャートは正しいです-EclipseとGuava以外のソリューションは遅すぎて、1ピクセルのバーを取得することさえできません!高速ソリューションは、他のソリューションよりも10,000〜20,000 倍高速です。 もちろん、ここで起こっているのは、guavaとeclipseのソリューションが実際には10,000要素のリストの種類を具体化しないことです。これらは、開始と終了の周りの固定サイズのラッパーにすぎません。各要素は、反復中に必要に応じて作成されます。このテストでは実際には反復しないため、コストは延期されます。他のすべてのソリューションは、実際に完全なリストをメモリに具体化し、作成のみのベンチマークで高額を支払います。 もう少し現実的なことをして、すべての整数を繰り返して合計します。したがって、IntStream.rangeClosedバリアントの場合、ベンチマークは次のようになります。 @Benchmark …

3
guavaとapacheの同等のライブラリ間の大きな改善点は何ですか?
現在、Apacheコレクション、文字列ユーティリティなどを使用しています。Apacheファウンデーションの実装から切り替えるかどうかを決定する必要があります。 重要な基準は、開発者の使いやすさです。パフォーマンス/メモリ使用量は、まだ私たちにとって重要な問題ではありません。この時点では、開発のスピードが重要な基準です。 グアバによって開発者の生活が大幅に楽になった方法についての意見をいただければ幸いです。

1
Android開発にGoogle Guavaライブラリを使用することは良い考えですか?
私は、Webサービス用の「分厚い」モバイルクライアントであるAndroidアプリケーションの開発に携わっています。サーバーと強く通信しますが、内部ロジックもたくさんあります。そこで、Google Guavaライブラリのいくつかの機能を使用して開発プロセスを簡略化することにしました。これは、私が非常に興味を持っている機能のリストです:不変コレクション、ベースユーティリティ、コレクション拡張、関数型プログラミングシュガーとイディオム(common.collectおよびcommon.base)、プリミティブユーティリティ(common.primitives)、ハッシュユーティリティ(common.hash)、同時ユーティリティ(未来およびAsyncFunction)。私が Androidで使用したくないもの:(common.cache下記の質問を参照)、common.eventbus(これにはOttoなどのより良いAndroid固有のライブラリcommon.ioがあります)、(okioを使用できます Android向け)。 :私は、Android用のグアバを使用すると、大幅にコンパイル処理を遅くしても、全体の実行時のパフォーマンス低下することを読んで 、Android上グアバキャッシュバートパフォーマンス (この場合には、それが合理的であるとAndroidのためのグアバのキャッシュを使用する必要はありません)と Googleに追加しますグアバからAndroidプロジェクト-ビルドが大幅に遅くなる では、AndroidプロジェクトでGuavaライブラリを使用するのは効率的ですか、またはこのライブラリはサーバー側の開発でのみ使用するように設計されていますか?標準のソリューションを使用する必要がありますか?説明をいただければ幸いです。
122 java  android  guava 

11
標準のMIMEタイプ定数をリストするインターフェース/列挙型
標準ライブラリ(apache commons、jax、jboss、javaxなど)の中から、すべての標準MIMEタイプ(別名content-type)の値をリストするインターフェースまたは列挙型を探しています。 このインターフェイスは、gwtソースコードとして束全体を含めることを困難にする他のクラスとの深い関係に妨げられるべきではありません。 例えば interface ContentType{ String JSON = "Application/JSON"; blah ... blah ... } または、 enum ContentType{ JSON("Application/JSON"), blah ... blah ... }

18
重複するキーを持つマップ実装
重複するキーを持つマップが欲しいのですが。 私は多くのマップ実装があることを知っています(Eclipseは約50を示しています)ので、これを可能にするものがあるはずです。これを行う独自のマップを作成するのは簡単ですが、既存のソリューションを使用したいと思います。 たぶんcommons-collectionsやgoogle-collectionsに何かありますか?

5
複数のコレクションを1つの論理コレクションに結合しますか?
クラスのメンバーとして、一定数のコレクション(たとえば、3つのArrayLists)があると仮定します。ここで、すべての要素を他のクラスに公開して、それらがすべての要素を単純に反復処理できるようにしたい(理想的には、読み取り専用)。私はグアバコレクションを使用していますが、グアバイテラブル/イテレータを使用して、一時的なコピーを作成せずに内部コレクションの論理ビューを生成する方法を知りたいと思います。
110 java  collections  guava 

15
HashMapのビルダー
Guavaは、Java型の優れたファクトリメソッドを提供していMaps.newHashMap()ます。 しかし、Java Mapsのビルダーもあるのでしょうか? HashMap<String,Integer> m = Maps.BuildHashMap. put("a",1). put("b",2). build();
109 java  collections  guava 

9
IOUtils.toString(InputStream)に相当するGuava
Apache Commons IOには便利なメソッドがありますInputStream、文字列を読み取るための IOUtils.toString()があります。 私はアパッチコモンズからグアバに移動しようとしているので、グアバに同等のものはありますか?com.google.common.ioパッケージ内のすべてのクラスを調べましたが、これほど単純なものは見つかりませんでした。 編集:私は文字セットの問題を理解し、感謝しています。すべてのソースがASCII(はい、ASCII、ANSIではないなど)であることを知っているので、この場合、エンコーディングは問題になりません。
106 java  io  inputstream  guava 

7
コレクションのGoogle Guava isNullOrEmpty
Guavaには文字列用のisNullOrEmptyユーティリティメソッドがあることがわかります Strings.isNullOrEmpty(str) リストにも同様のものはありますか?何かのようなもの Lists.isNullOrEmpty(list) これは list == null || list.isEmpty() また、配列にも同様のものはありますか?何かのようなもの Arrays.isNullOrEmpty(arr) これは arr == null || arr.length == 0
102 java  guava 

4
Javaの述語
PredicateJava で使用するコードを調べています。使ったことがないPredicate。誰かが私をチュートリアルまたはPredicateJavaでの実装の概念的な説明に案内できますか?
100 java  guava  predicate 


12
コードを縮小する方法-dexでの65kメソッドの制限
多くのライブラリプロジェクトに依存するかなり大きなAndroidアプリがあります。Androidコンパイラには、.dexファイルごとに65536メソッドの制限があり、その数を超えています。 メソッドの制限に達したときに選択できるパスは、基本的に2つあります(少なくとも私が知る限り)。 1)コードを縮小する 2)複数のdexファイルを作成します(このブログ投稿を参照) 私は両方を調べて、メソッド数が非常に高くなる原因を見つけようとしました。Google Drive APIは、12,000以上のGuava依存関係を持つ最大のチャンクです。Drive API v2の合計ライブラリは23,000以上に達します! 私の質問では、どうすればよいと思いますか。アプリの機能としてGoogleドライブの統合を削除する必要がありますか?APIを縮小する方法はありますか(はい、私はプロガードを使用しています)?複数のdexルートを使用する必要がありますか(特にサードパーティのAPIを扱う場合)、かなり苦痛です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.