我有一个课程Person,它存储每个人的代码和朋友列表.我正在尝试获取拥有最多朋友数量的人的代码,但无法弄明白.这些方法getFriends和getCode由提供Person类.
如何从流中返回字符串?
HashMap<String,Person> persons = new HashMap<>();
public String personWithLargestNumberOfFriends() {
return persons.values().stream()
.sorted(comparing(p -> ((Person)p).getFriends().size()).reversed())
.limit(1)
.forEach(p -> ((Person)p).getCode());
}
Run Code Online (Sandbox Code Playgroud) 我有一个interface Course和一个class CourseCLS implements Course.
首先,我尝试CourseCLS用相同的数字对对象进行分组.我不确定它是否正确.
Map<Integer, List<CourseCLS>> first =
courses.values().stream()
.collect(Collectors.groupingBy(c -> c.getNumber()));
Run Code Online (Sandbox Code Playgroud)
现在,我需要改变Map<Integer, List<CourseCLS>>成Map<Integer, List<Course>>,然后返回.
有什么想法怎么做?
groupingBy(c -> c.overHeadPercentage(),
Collectors.mapping(p -> (Course) p, Collectors.toList()))
Run Code Online (Sandbox Code Playgroud)