【发布时间】:2017-11-21 19:37:29
【问题描述】:
我有一个歌曲列表,这是一个具有 3 个值的类:songName、albumName、duration 和 hash。
我编写了一个函数,它返回按名称排序的所有歌曲的Stream<String>。
我的第一个想法是:
public Stream<String> orderedSongNames() {
return songs.stream().sorted((s1,s2)>s1.getSongName().compareTo(s2.getSongName()));
}
问题是这样,返回值是Stream<Song>,但我想要Stream<String>。有人知道我如何解决手头的问题吗?
【问题讨论】:
-
您在
(s1,s2)->(而不是(s1,s2)>)这里缺少一个破折号。你可以考虑.sorted(Comparator.comparing(Song::getSongName)) -
如果你想要一个“字符串流”,为什么你会遇到“返回值是一个流”的问题?如果您想要返回 Songs 或 Strings,也不清楚。你得到了一堆答案,每个回答者都按照他的意愿理解你的问题,请澄清一下。
标签: java list java-stream