1

MultiValuedTreeMap のビルド済みの実装を見つけようとしています。簡単に言えば、リストを使用して複数の値にマップするには、単一のキーが必要です。次に、各キーをソートされた構造に格納する必要があります。これは、ツリー マップであると想像するため、名前が付けられました。

私が見つけた最も近いものは ArrayListValuedHashMap です: https://commons.apache.org/proper/commons-collections/javadocs/api-4.4/index.html

ただし、HashMap の代わりに TreeMap を使用するバージョンはありません。

私はApache Commonsライブラリを初めて使用するので、質問が明らかであるか、すでに解決されている場合はご容赦ください。

また、これを自分で比較的簡単に実装できることも認識していますが、車輪が既に存在する場合、車輪を再発明したくありません。

4

1 に答える 1

0

すぐに使える直接実装はありませんListValuedTreeMap。意図したクラスの具体的な実装ListMap渡すListValuedMapAbstractListValuedMap

javadoc から:

サブクラスは、内部ストレージとして使用する Map 実装と、値として使用する List 実装を指定します。

の一般的な実装は、次のListValuedTreeMap方法で実装できます。

public class ListValuedTreeMap<K extends Comparable<K>, V> extends AbstractListValuedMap<K, V> {
    public ListValuedTreeMap() {
        super(new TreeMap<>());
    }

    @Override
    protected List<V> createCollection() {
        return new ArrayList<>();
    }
}
于 2019-10-14T19:52:53.623 に答える