當前位置:編程學習大全網 - 源碼下載 - Java中Collection和Collections的區別

Java中Collection和Collections的區別

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

  • 上一篇:介紹壹下軒轅劍。
  • 下一篇:該怎麽制定逆向工程技術學習目標
  • copyright 2024編程學習大全網