Java集合,使用treeset作为treemap的值

Java集合,使用treeset作为treemap的值,java,collections,treemap,treeset,Java,Collections,Treemap,Treeset,我想使用一个TreeMap实现创建一个数据集合,其中String作为键,TreeSet作为值,并使用自己的Mycomparator实例进行排序。它不能包含重复的值,因此需要树映射 private TreeMap<String, TreeSet<String>> tree_map = null; public constructorTreeMap() { tree_map = new TreeSet<String>()new MyComparator(

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

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

public constructorTreeMap() {
    tree_map = new TreeSet<String>()new MyComparator();
private TreeMap tree\u map=null;
公共构造函数treemap(){
tree_map=new TreeSet()new MyComparator();
我不能得到正确的实例化,我应该怎么做

之后如何向树集添加多个字符串


谢谢,欢迎提供任何帮助=)

我希望下面的示例能让事情变得更清楚一些:

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 TreeMap=null;
//首先,实例化树映射
treeMap=新的treeMap();
//接下来,创建树集值,您可以使用比较器对其进行实例化
树集值=新树集(myComparator);
增值(“FOO”);
增加价值(“酒吧”);
//然后可以将该树集作为值插入树映射中
treeMap.put(“字符串键”,值);

您可能需要考虑在实例化TreMeP时使用<代码> SET/COM>接口类,这使得它更通用:

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

您的代码在语法方面有错误。应该是这样的:

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);
}
private TreeMap tree\u map=null;
公众简介{
树映射=新树映射();
TreeSet tree_set=新树集(new MyComparator());
树映射。放置(“foo”,树集合);
}
要向已存在的树集添加一些元素,可以执行以下操作:

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");
if(tree\u map.get(“foo”)==null){//null检查并仅在必要时填充
tree_map.put(“foo”,newtreeset());
}
树形图。获取(“foo”)。添加(“foo-foo”);

首先实例化树形图:

TreeMap<String, TreeSet<String>> map = new TreeMap<>();
然后将该集合放入地图中:

TreeSet set = new TreeSet<String>(comparator);
map.put("key", set);

不要重复你自己,只要写
TreeMap TreeMap=new TreeMap();
这在Java 7中是可能的。从Java 8开始,你可以使用类似
TreeMap.computeFabSent(“你的字符串键”,key->new TreeSet(myComparator)).add(“FOO”)这样的语句;
@Holger,谢谢!非常感谢,一个f-up问题:如何根据键返回值。@Jeffrey01取决于您想用它做什么。一个简单的
TreeSet s=treeMap.get(someKey);
就可以了。
map.put("key", set);