繁体   English   中英

Java collections,使用treeset作为treemap的值

[英]Java collections, use treeset as value for treemap

我想使用 TreeMap 实现创建数据集合,其中 String 作为键,TreeSet 作为值,使用自己的 Mycomparator 实例进行排序。 它不能包含重复值,因此是 TreeMap。

private TreeMap<String, TreeSet<String>> tree_map = null;

public constructorTreeMap() {
    tree_map = new TreeSet<String>()new MyComparator();

我无法正确实例化,我该怎么做?

之后如何向 TreeSet 添加多个字符串?

谢谢任何帮助是受欢迎的=)

我希望下面的例子能澄清一点:

TreeMap<String, TreeSet<String>> treeMap = null;
// First you instantiate your TreeMap
treeMap = new TreeMap<String, TreeSet<String>>();

// Next you create your TreeSet value which you can instantiate with your comparator
TreeSet<String> value = new TreeSet<String>(myComparator);
value.add("FOO");
value.add("BAR");
// Then you can insert that TreeSet as value in your TreeMap
treeMap.put("your-string-key", value);

不过,在实例化 treeMap 时,您可能需要考虑使用Set<String>接口 class ,这使其更通用:

TreeMap<String, Set<String>> treeMap = new TreeMap<String, Set<String>>();

您的代码在语法方面有问题。 它应该是这样的:

private TreeMap<String, TreeSet<String>> tree_map = null;

public SynoniemenBeheer() {
    tree_map = new TreeMap<>();
    TreeSet<String> tree_set = new TreeSet<>(new MyComparator());
    tree_map.put("foo", tree_set);
}

并且要向已经存在的 TreeSet<> 添加一些元素,您可以执行以下操作:

if (tree_map.get("foo") == null) { //null check and fill only if necessary
    tree_map.put("foo", new TreeSet<>());
}
tree_map.get("foo").add("foo-foo");

首先你实例化 Treemap:

TreeMap<String, TreeSet<String>> map = new TreeMap<>();

然后实例化要放入 map 的 Treeset:

TreeSet set = new TreeSet<String>(comparator);

然后将要添加的值添加到集合中:

Collections.addAll(set, "value1","value2","value3");

然后你把套装放入你的 map:

map.put("key", set);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM