【问题标题】:Sorting an ArrayList of objects using attributes of these objects (using streams) [duplicate]使用这些对象的属性对对象的 ArrayList 进行排序(使用流)[重复]
【发布时间】:2021-07-10 00:37:33
【问题描述】:

我正在尝试使用流对歌曲对象数组进行排序,问题是我正在尝试使用对象的属性 -title- 对对象列表进行排序,然后将流的数据类型更改为细绳。我不知道如何阻止这种情况发生,有什么建议吗?

public void sort(){

allSongs = allSongs.stream()
                    .map(song -> song.getArtist(cs))
                    .sorted()
                    .collect(Collectors.toList(allSongs));


}

public String getArtist(CustomSong cs){

return cs.artist;
    
}

【问题讨论】:

  • cssort() 方法中是什么?为什么getArtist不使用Song对象时是实例方法?
  • cs 是具有以下属性的自定义歌曲对象:标题、艺术家、持续时间、评级、totalListens、显式和流派。对于获取艺术家方法,我应该只引用它而不使用对象吗?
  • 是的,假设getArtist 方法是CustomSong 类的一个方法,它应该没有参数并且应该简单地做return this.artist;。您需要重新阅读 Java 学习资料中关于 getter 和 setter 方法的部分。

标签: java object oop arraylist stream


【解决方案1】:

使用Stream 方法

Stream<T> sorted​(Comparator<? super T> comparator)

并提供适当的比较器。

【讨论】:

  • 谢谢,我在哪里可以找到更多关于这个的信息,因为我不太熟悉比较器。
  • 使用您喜欢的搜索引擎查找“java 教程比较器”。有几个很好的解释。将来,请在发布问题之前进行一些研究。
  • 感谢您的帮助,下次我会做更多的研究
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 2017-12-11
  • 2013-05-21
  • 2017-09-06
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多