1. 程式人生 > 其它 >三十八、Collections 工具類

三十八、Collections 工具類

工具類:私有構造器,所有方法 都是靜態的 static

java.util.Collections 是集合的工具類,裡面提供了靜態方法來操作集合,亂序,排序....

1、常用方法

方法 描述
public static void shuffle(List<?> list) 打亂集合順序。(洗牌)
public static <T> void sort(List<T> list) 將集合中元素按照預設規則排序。
public static <T> void sort(List<T> list,Comparator<? super T> )
將集合中元素按照指定規則排序。
public static <T> boolean addAll(Collection<T> c, T... elements) 往集合中新增一些元素。

2、shuffle方法

public static void shuffle(List<?> list)

  1. 亂序只能對 List 集合進行亂序
  2. 集合中元素型別可以任意型別
// 建立ArrayList集合物件
ArrayList<Integer> list = new ArrayList<>();

// 新增元素
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);

Collections.shuffle(list);

System.out.println(list);
// [5, 4, 1, 2, 3]

3、sort方法

  • public static <T extends Comparable> void sort(List<T> list)

    1. 將集合中元素按照預設規則排序。
    2. 該方法只能對List集合進行排序。
    3. 從方法中泛型分析可知,集合中元素型別必須是 Comparable 的子型別。
public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        // Integer 類 繼承了Comparable,重寫了 compareTo()方法,有預設的從小到大排序。
   
        list.add(100);
        list.add(300);
        list.add(200);
        list.add(50);
        //排序方法 
        Collections.sort(list);
        System.out.println(list);
    }
}
/*
結果:
[50,100, 200, 300]  
*/
  • public static <T> void sort(List<T> list,Comparator<? super T> c)

    1. 方法只能對List結合排序

    2. 對元素的型別沒有要求

    3. 需要定義一個比較器Comparator(規則和之前 TreeSet 時一樣)

      public int compare(E o1,E o2){
          return o1 - o2; //升序
          或者
          return o2 - o1; //降序    
      }
      
  • 自然排序與比較器排序,可以看之前的 TreeSet 集合,裡面有詳細說明