18

私はGuavaライブラリを初めて使用しますが、BiMapが私のニーズにうまく適合していることがわかりました。私の1つの問題は、BiMapの値を並べ替える必要があることです。通常は、継承された並べ替えのためにTreeMapを使用していましたが、マップを反転して、キーが値であるかのようにキーを確認できるようにする必要があります。

だから私はあなたの専門家からこれについてのアドバイスを探していました。私が見ている解決策は次のとおりです。1。BiMapコンパレータを作成し、独自のマップソートユーティリティを使用します。2.独自の「BiTreeMap」データ構造を構築します。

私が考えていない解決策はありますか?私が逃したこれを行うための「グアバの方法」はありますか?ありがとう!

4

1 に答える 1

23

BiMap動作方法が少しあいまいなため、現在、並べ替えられたタイプはありません。エントリはキーで並べ替えられますか?値によって?順方向のエントリはキーで並べ替えられ、逆方向のエントリは値で並べ替えられますか?

現在、実際に利用できる唯一の選択肢はですImmutableBiMap。これは、エントリを配置した順序を保持しているため、キーImmutableBiMap.copyOf(Maps.newTreeMap(map))BiMap並べ替えられます。

BiMap(ただし、ユースケースの詳細を含む機能リクエストを提出した場合は、直接ソートを提供することをより真剣に検討する可能性があります。)

于 2012-11-05T17:20:26.090 に答える