[英]Sorting lists with one instance
Hello I am trying to pass to my jsp page two sorted Lists which I get from the database like that 您好,我试图将我从数据库中获得的两个排序列表传递给我的jsp页面,
@RequestMapping(value = "/sortDate", method= RequestMethod.GET)
public void sortedLists(Model model, HttpSession session){
List<Song> songsByDate;
try {
songsByDate = SongDAO.getInstance().getAllSongs();
Collections.sort(songsByDate, new UploadTimeComparator());
session.setAttribute("songs", songsByDate);
/////////////////////////////////
List<Song> songsByLikes;
try {
songsByLikes = SongDAO.getInstance().getAllSongs();
Collections.sort(songsByLikes, new LikesComparator());
session.setAttribute("songs2", songsByLikes);
}}}
However the problem is since I use getInstance() , songs and songs2 are the same Lists sorted by Likes,how can I overcome this problem? 但是问题是由于我使用getInstance(),Songs和Songs2是按Likes排序的相同List,如何解决这个问题?
You need to copy each "all songs" list to a new array list, which you can then proceed to sort. 您需要将每个“所有歌曲”列表复制到新的数组列表,然后可以继续进行排序。
So: 所以:
List<Song> songsByDate = new ArrayList<>( SongDAO.getInstance().getAllSongs() );
Collections.sort( songsByDate, new UploadTimeComparator() );
List<Song> songsByLikes = new ArrayList<>( SongDAO.getInstance().getAllSongs() );
Collections.sort( songsByLikes, new LikesComparator() );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.