java——-collections提供的一些靜態方法

來源:互聯網
上載者:User

1. Collection是集合類的一個頂級介面,其直接繼承介面有List與Set

而Collections則是集合類的一個工具類/協助類,其中提供了一系列靜態方法,用於對集合中元素進行排序、搜尋以及安全執行緒等各種操作。

 

1) 排序(Sort)
使用sort方法可以根據元素的自然順序 對指定列表按升序進行排序。列表中的所有元素都必須實現 Comparable介面。此列表內的所有元素都必須是使用指定比較子可相互比較的
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.sort(list);
for (int i = 0; i < array.length; i++) {
  System.out.println(li.get(i));
}
//結果:112,111,23,456,231
2) 混排(Shuffling)
混排演算法所做的正好與 sort 相反: 它打亂在一個 List 中可能有的任何排列的蹤跡。也就是說,基於隨機源的輸入重排該 List,這樣的排列具有相同的可能性(假設隨機源是公正的)。這個演算法在實現一個碰運氣的遊戲中是非常有用的。例如,它可被用來混排代表一副牌的Card 對象的一個 List 。另外,在產生測試案例時,它也是十分有用的。
Collections.Shuffling(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.shuffle(list);
for (int i = 0; i < array.length; i++) {
  System.out.println(li.get(i));
}
//結果:112,111,23,456,231
3) 反轉(Reverse)
      使用Reverse方法可以根據元素的自然順序 對指定列表按降序進行排序。
Collections.reverse(list)
double array[] = {112, 111, 23, 456, 231 };
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections. reverse (list);
for (int i = 0; i < array.length; i++) {
  System.out.println(li.get(i));
}
//結果:231,456,23,111,112
4) 替換所以的元素(Fill)
使用指定元素替換指定列表中的所有元素。
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<str.length;j++){
li.add(new String(str[j]));
}
Collections.fill(li,"aaa");
for (int i = 0; i < li.size(); i++) {
System.out.println("list[" + i + "]=" + li.get(i));

}
//結果:aaa,aaa,aaa,aaa,aaa

5) 拷貝(Copy)
用兩個參數,一個目標 List 和一個源 List, 將源的元素拷貝到目標,並覆蓋它的內容。目標 List至少與源一樣長。如果它更長,則在目標 List 中的剩餘元素不受影響。
Collections.copy(list,li): 後面一個參數是目標列表 ,前一個是源列表
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {1131,333};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Collections.copy(list,li);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//結果:1131,333,23,456,231
6) 返回Collections中最小元素(min)
根據指定比較子產生的順序,返回給定 collection 的最小元素。collection中的所有元素都必須是通過指定比較子可相互比較的
Collections.min(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.min(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//結果:23
7) 返回Collections中最小元素(max)
根據指定比較子產生的順序,返回給定 collection 的最大元素。collection中的所有元素都必須是通過指定比較子可相互比較的
Collections.max(list)
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.max(list);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//結果:456
8) lastIndexOfSubList
返回指定源列表中最後一次出現指定目標列表的起始位置
int count = Collections.lastIndexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections. lastIndexOfSubList (list,li);
System.out.println(“===”+ locations);
//結果 3
9) IndexOfSubList
返回指定源列表中第一次出現指定目標列表的起始位置
int count = Collections.indexOfSubList(list,li);
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
List li = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
double arr[] = {111};
String str[] = {"dd","aa","bb","cc","ee"};
for(int j=0;j<arr.length;j++){
li.add(new Double(arr[j]));
}
Int locations = Collections.indexOfSubList(list,li);
System.out.println(“===”+ locations);
//結果 1
10) Rotate
根據指定的距離迴圈移動指定列表中的元素
Collections.rotate(list,-1);
如果是負數,則正向移動,正數則方向移動
double array[] = {112, 111, 23, 456, 231 };
List list = new ArrayList();
for (int i = 0; i < array.length; i++) {
list.add(new Double(array[i]));
}
Collections.rotate(list,-1);
for (int i = 0; i <list.size(); i++) {
System.out.println("list[" + i + "]=" + list.get(i));
}
//結果:111,23,456,231,112

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.