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

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

1、業務場景java

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

2、解決思路工具

  因爲頁面展現的數據爲後臺查詢所得的List集合中的元素,因此在後臺查到數據後,對集合進行排序,頁面展現也就是排序後的數據。this

3、實現對象

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

  public class Merch implements Comparable<Merch>{接口

    private String id;開發

    private String merchId;get

    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中,返回給前端,若是顯示對象的名稱,則顯示的是按照漢語拼音排序後的商戶名稱。

相關文章
相關標籤/搜索