我如何使用
Java Streams执行以下操作?
假设我有以下类:
class Foo { Bar b; } class Bar { String id; String date; }@H_403_5@我有一个列表< Foo>并且我想将其转换为Map< Foo.b.id,Map< Foo.b.date,Foo> ;. I.e:首先由Foo.b.id组合,然后由Foo.b.date组合. 我正在努力使用以下两步法,但第二个甚至不编译:
Map<String,List<Foo>> groupById = myList .stream() .collect( Collectors.groupingBy( foo -> foo.getBar().getId() ) ); Map<String,Map<String,Foo>> output = groupById.entrySet() .stream() .map( entry -> entry.getKey(),entry -> entry.getValue() .stream() .collect( Collectors.groupingBy( bar -> bar.getDate() ) ) );@H_403_5@提前致谢.