Коллекции Java, используйте treeset в качестве значения для treemap - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел бы создать коллекцию данных, используя реализацию TreeMap с String в качестве ключа и TreeSet в качестве значения, отсортированного с собственным экземпляром Mycomparator.Он не может содержать повторяющиеся значения, следовательно, TreeMap.

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

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

Я не могу понять, как работает экземпляр, как мне это сделать?

И как я могу добавить несколько строк в TreeSet впоследствии?

Спасибо, любая помощь приветствуется =)

Ответы [ 3 ]

0 голосов
/ 26 сентября 2019

В вашем коде что-то не так с точки зрения синтаксиса.Это должно быть примерно так:

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");
0 голосов
/ 26 сентября 2019

Сначала вы создаете экземпляр Treemap:

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

Затем вы создаете экземпляр Treeset, который хотите поместить на карту:

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

Затем вы добавляете значения, которые хотите добавить кнабор:

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

Затем вы кладете набор на карту:

map.put("key", set);
0 голосов
/ 26 сентября 2019

Я надеюсь, что следующий пример немного прояснит ситуацию:

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);

Возможно, вы захотите использовать интерфейсный класс Set<String> при создании экземпляра treeMap, что делает его более универсальным:

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