java中實現List集合中對象元素按其屬性的中文拼音排序


  java中List集合的元素是按照添加順序排序的,我們在實際開發過程中,可能會遇到需要對其內容進行排序的場景,接下來對我遇到的場景所采用的解決方式做個總結。

一、業務場景

  管理后台商戶名稱下拉列表,需平台商戶名稱按照首字母A-Z順序進行排序展示。

二、解決思路

  由於頁面展示的數據為后台查詢所得的List集合中的元素,所以在后台查到數據后,對集合進行排序,頁面展示也就是排序后的數據。

三、實現

  首先需要排序的對象需要實現Comparable接口並且並復寫compareto方法:

  public class Merch implements Comparable<Merch>{

    private String id;

    private String merchId;

    private String merchName;

    public Merch(String id, String merchId, merchName){

      this.merchId = merchId;

      this.merchName = merchName;

      }  

    public String getId() {
            return id;
        }

      public void setId(String id) {
            this.id = id == null ? null : id.trim();
        }

    public String getMerchId() {
            return merchId;
        }
       public void setMerchId(String merchId) {
            this.merchId = merchId == null ? null : merchId.trim();
        }

    public String getMerchName() {
            return merchName;
        }
       public void setMerchName(String merchName) {
            this.merchName = merchName == null ? null : merchName.trim();
        }

    @Override
        public int compareTo(Merch merchName) {
            return this.merchName.compareTo(merchName.getMerchName());
        }

   }

  在controller中,獲取到merchList<Merch>后做如下處理:

    偽代碼:

    //獲取商戶list集合

    List<Merch> merchList = xxxxService.queryMerchList();

    //Collections工具類的sort()方法對list集合元素排序 

    Collections.sort(merchList,new Comparator<Merch>() {
              @Override
              public int compare(Merch info1, Merch info2) {

       //獲取中文環境
                  Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
                  return com.compare(info1.getMerchName(), info2.getMerchName());
              }
          });

  這樣,controller將改列表放入view中,返回給前端,如果顯示對象的名稱,則顯示的是按照漢語拼音排序后的商戶名稱。

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM