Итак, я пытаюсь создать карту между значением id объекта и набором другого значения внутри этого объекта. Идея состоит в том, что объекты с каждым идентификатором имеют несколько связанных типов, и мне нужно создать способ легко ссылаться на типы, связанные с идентификатором в данном наборе данных.
Например;
public class exampleObj {
public string id;
public string type
// getters and setters are supplied by lombok
}
Map<String, Set<String>> output = listOfExampleObj.stream().........
Результат, который я ищу, - это Map<String, Set<String>>
с ключом, являющимся идентификатором, а значением, являющимся набором типа переменной, добавляемым к набору, когда поток повторяется по каждому exampleObj
Я безуспешно пробовал следующее:
Map<String, Set<String>> typeMap = listOfExampleObjs.stream().collect(Collectors.groupingBy(p -> p.getId(), toSet(p.getType)));
Map<String, Set<String>> typeMap = listOfExampleObjs.stream().collect(Collectors.groupingBy(exampleObj::id, toSet(example::type)));
Map<String, Set<String>> typeMap = listOfExampleObjs.stream().collect(Collectors.groupingBy(exampleObj::id, groupingBy(exampleObj::type)));
Есть ли сборщик java, который мне не хватает? Должен ли я делать собственный сборщик, чтобы это произошло?