我已经浏览了一些例子,但它们对我没有用。
这是我要做的事情:
我有一个以下类的List<SomeClass>
:
class SomeClass {
String rid;
String name;
...
}
我的
List
中的值看起来像这样:SomeClass(1,"apple")
SomeClass(1,"banana")
SomeClass(1,"orange")
SomeClass(2,"papaya")
SomeClass(2,"peaches")
SomeClass(3,"melons")
我希望将上述的
List
转换为一个 Map<String, Set<String>>
,其中键名为 rid
,值为 name
字段的 Set
。使用 Java
Streams
解决此问题,我使用了 groupingBy
,并得出了以下解决方案:someClassList
.stream()
.map(SomeClass::getName)
.collect(
Collectors.groupingBy(
SomeClass::getRid, Collectors.toSet()));
但是这会导致编译错误。我该如何解决这个问题,我的做法有什么问题?