簡體   English   中英

用一個實例對列表進行排序

[英]Sorting lists with one instance

您好,我試圖將我從數據庫中獲得的兩個排序列表傳遞給我的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);
   }}}

但是問題是由於我使用getInstance(),Songs和Songs2是按Likes排序的相同List,如何解決這個問題?

您需要將每個“所有歌曲”列表復制到新的數組列表,然后可以繼續進行排序。

所以:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM