2016-06-25 3 views
0

私はのために複数の値を保存する必要がありましたので、私はGuavaのMultimapについて学びました。Guava MultimapエントリをJava Util Listに保存するにはどうすればいいですか?

List<Map.Entry<String, String>

:私はのようにリストに、同じキーに対して複数の値を格納していて、この場合、値が配列される値
K: V[]

は今、私のコードでキーを取得する必要があります以下は

私はそれを成し遂げることを試みた方法である:上記のコード

List<Map.Entry<String, String>> mapCall = (List<Map.Entry<String, String>>) multimap.entries(); 

Collectionを返すことになって、ここにList、各Entry<String, String>

以下、それが失敗したかである:エラー:

java.lang.ClassCastException: com.google.common.collect.AbstractMultimap$4 cannot be cast to java.util.List 

私はMultimapentries()メソッドを呼び出すことによって、ここで返さCollectionは、Javaコレクションタイプではないと思います。それを達成するための正確な方法を見つけることができません。

これを達成するための適切な方法は何ですか?

答えて

0

メソッドの戻り値の型はCollectionです。ドキュメンテーションは、返されたコレクションがListであるとは言わないので、その前提をしてはいけません。

あなたが本当にリストが必要な場合は、その後、新しいリストに戻ったコレクションの要素をコピーします。

List<Map.Entry<String, String>> mapCall = new ArrayList<>(multimap.entries()); 
関連する問題