1. 程式人生 > >List去重排序

List去重排序

   List 如何快速去掉重複元素並排序?

  當時自己今天去面試,面試官直接甩給我一個問題:List 如何快速去掉重複元素並排序?沒多考慮,直接想到set介面下HashSet的不可重複特性,隨口一答使用Set進行去重,但是排序卻思考了半天沒能答上來。後來查了查資料,特將方法記錄下來以備複習使用。

  首先去重,大家都能想到使用Set,具體思路是

  Set<int> set=new HashSet<>();
  List<int> list=new ArrayList<>();
  set.addAll(list);

  當然可能有部分資料會丟失。當然此方法只侷限於去除重複的基本資料型別元素,至於排序則如下;

  1.對於集合中存放的基本資料型別。如List<int>,List<String>可以使用Arrays.sort(list)直接進行排序。

  2.因為大部分實際開發中我們需要處理的集合元素可能多是物件,排序依靠某個欄位才能進行,這就用到了集合框架提供的另一種排序方法Collections.sort(list, new ComparatorUtil()),通過實現Comparator介面和實現Comparable介面來構建比較器ComparatorUtil()

    Comparable介面 用於單一的條件排序,比如使用者按照年齡排序,這就需要重寫compareTo()方法。


    Comparator介面 用於多要求的條件排序,比如使用者需按照年齡、出生日期排序,實現compare()方法。

詳細的程式碼我會在之後加上。