Collections工具類(集合框架)

Collections是集合框架的工具類。裏面的方法都是靜態的。

1,Collections中常用方法

(1)static <T extends Comparable<? super T>> void sort(List<T> list):根據元素的自然順序 對指定列表按升序進行排序。

static <T> void sort(List<T> list, Comparator<? super T> c):根據指定比較器產生的順序對指定列表進行排序。

運用示例:

import java.util.*;

class StrLenComparator implements Comparator<String>{//自定義一個比較器
 public int compare(String s1,String s2){
  if(s1.length()==s2.length())
   return s1.compareTo(s2);  
  return s1.length()-s2.length();
 }
}

public static void sortDemo(){
  List<String> list = new ArrayList<String>();
  list.add("aeg");
  list.add("e");
  list.add("rehhj");
  list.add("rtyr");
  list.add("nfgjdf");
  list.add("e");
  sop(list);
  Collections.sort(list);//自然排序
  sop(list);
  Collections.sort(list,new StrLenComparator());//自定義一個比較器排序
  sop(list);
 }
 public static void sop(Object o){
  System.out.println(o);
 }

(2)static <T extends Object & Comparable<? super T>> T  max(Collection<? extends T> coll):根據元素的自然順序,返回給定 collection 的最大元素。

static <T> T  max(Collection<? extends T> coll, Comparator<? super T> comp):根據指定比較器產生的順序,返回給定 collection 的最大元素。

static <T extends Object & Comparable<? super T>> T  min(Collection<? extends T> coll):根據元素的自然順序 返回給定 collection 的最小元素。

static <T> T  min(Collection<? extends T> coll, Comparator<? super T> comp):根據指定比較器產生的順序,返回給定 collection 的最小元素。

運行示例:

sop("最大值:"+Collections.max(list));//取出最大值

sop("最大值:"+Collections.max(list,new StrLenComparator()));//通過自定義比較器排序後取出最大值

注意:min的用法與max雷同。

(3)static <T> int  binarySearch(List<? extends Comparable<? super T>> list, T key):使用二分搜索法搜索指定列表,以獲得指定對象。

static <T> int  binarySearch(List<? extends T> list, T key, Comparator<? super T> c):使用二分搜索法搜索指定列表,以獲得指定對象。

注意:在使用二分搜索法之前,必須先對集合進行排序。

運行示例:

Collections.sort(list);

sop("自然排序集合:"+list);

int index = Collections.binarySearch(list,"rehhj");

sop("字符串的下標是:"+index);

*******************************************************

Collections.sort(list,new StrLenComparator());

sop("比較器排序集合:"+list);

int index = Collections.binarySearch(list, "aaaa", new StrLenComparator());

sop("字符串的下標是:"+index);

(4)static <T> void  copy(List<? super T> dest, List<? extends T> src):將所有元素從一個列表複製到另一個列表。

運行示例:

List<String> newlist = new ArrayList<String>();

Collections.copy(list,newlist);

sop(newlist);

--------------------------------------------------------------------------------

static <T> void  fill(List<? super T> list, T obj):使用指定元素替換指定列表中的所有元素。

運行示例:

Collections.fill(list, "456");//全部替換

sop(list);

--------------------------------------------------------------------------------

static void reverse(List<?> list):反轉指定列表中元素的順序。

運行示例:

Collections.reverse(list);

sop(list);

--------------------------------------------------------------------------------

逆轉排序

static <T> Comparator<T> reverseOrder():返回一個比較器,它強行逆轉實現了 Comparable 接口的對象 collection 的自然順序。(自然順序是通過對象自身的 compareTo 方法強行排序的。)

public static <T> Comparator<T> reverseOrder(Comparator<T> cmp):返回一個比較器,它強行逆轉指定比較器的順序。如果指定比較器爲 null,則此方法等同於 reverseOrder()。(換句話說,它返回一個比較器,該比較器將強行逆轉實現了 Comparable 接口的對象 collection 的自然順序)。

運行示例:

TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());

TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
  ts.add("aeg");
  ts.add("e");
  ts.add("rehhj");
  ts.add("rtyr");
  ts.add("nfgjdf");
  ts.add("e");

  sop(ts);

static void swap(List<?> list, int i, int j):在指定列表的指定位置處交換元素。

static void shuffle(List<?> list):使用默認隨機源對指定列表進行置換。

運行示例:

Collections.swap(list,1,3);//交換指定位置的元素

Collections.shuffle(list);//隨機排序

--------------------------------------------------------------------------------

發佈了22 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章