Java 集合排序、漢字按字母表排序問題
阿新 • • 發佈:2019-02-11
一般Java程式裡面對於字母數字開頭的排序還是很OK的,但是對於漢字,也整Java排序的話,雖然也是排了順序。
但是那個順序不是咱們的那個字母表的順序,這個不合咱們的要求,所以還得按咱們的要求來排序才好。
public interface OrderingConstants { Collator collator = Collator.getInstance(Locale.CHINA); /** * Model為要排序的物件model,如Person,等等型別的自定義model。 */ Ordering<Model> Model_NAME_ORDERING = new Ordering<Model>() { @Override public int compare(Model left, Model right) { if (left == null || left.getTitle() == null) { return -1; } if (right == null || right.getTitle() == null) { return 1; } return collator.compare(left.getTitle(), right.getTitle()); } }; } //呼叫上面的,來給一個集合,按model的某個欄位,排序 //List<Model> allModels = getAllModels()//這個就是獲得要排序的集合。 Collections.sort(allModels, OrderingConstants.Model_NAME_ORDERING); //然後這個allModels集合就排過順序啦。 //Ordering 這個類是guava包裡面的東西 public abstract class Ordering<T> implements Comparator<T> { 。。。。。。 //實現Comparator這個介面。和一般的集合排序自己實現這個介面是一個道理。 // Override to add @Nullable @Override public abstract int compare(@Nullable T left, @Nullable T right); 。。。。。。 }
暫時先整個這個guava的這個,改天再整個通用的,只要Java包就可以用的,排序的方法。
現在有如下連結:
還有個問題,你還不一定遇得到,但是還是建議看一下。如下連結: