黑馬程序員---Java中的Collections工具類

                                                 關於Java中的Collections工具類
                 --------- android培訓java培訓、java學習型技術博客、期待與您交流! ------------

//=========================================
1.  Collection和Collections區別
  Collection單例集合根接口
  Collections普通的類,專門操作集合的一個類
//=========================================
 
2.Collections的一些方法

A.  sort(List<T> list) 只限在List集合

B.  sort(List<T> list, Comparator<? super T> c) 傳遞一個比較器

C.  static <T> Comparator<T> reverseOrder() 方法的運行結果,是一個 比較器,逆轉對象的自然順序
  只有一個比較器就能排序了嗎,不能,reversOrder必須和sort配合
 
D.  reverseOrder(Comparator<T> cmp) 傳遞一個比較器對象,方法的運行結果也是一個比較器
  逆轉我們傳遞的比較器


import java.util.*;
public class CollectionsDemo {
 public static void main(String[] args) {
  method_3();
 }
 
 //靜態方法。sort(比較器) 比較器從reversOrder(傳遞比較器)方法獲取,逆轉了我們傳遞的比較器
 private static void method_3(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //獲取一個逆轉的比較器
  //Comparator com = Collections.reverseOrder(new StringLength());
  Collections.sort(list, Collections.reverseOrder(new StringLength()));
  System.out.println(list);
 }
 
 //靜態方法,sort(比較器) 比較器是從reversOrder方法中獲取的,強行逆轉
 private static void method_2(){
  List<String> list = new ArrayList<String>();
  list.add("gdfdf");
  list.add("terrr");
  list.add("asdd");
  list.add("qwa3");
  list.add("bgv21334");
  System.out.println(list);
  //獲取比較器,靜態方法reverseOrder()
  //Comparator com = Collections.reverseOrder();
  Collections.sort(list,Collections.reverseOrder());
  System.out.println(list);
 }
 
 //靜態方法sort(比較器)按照指定的比較器排序
 private static void method_1(){
  List<String> list = new ArrayList<String>();
  list.add("terrr");
  list.add("gdfdf");
  list.add("qwa3");
  list.add("bgv21334");
  list.add("asdd");
  System.out.println(list);
  //調用靜態方法sort傳遞比較器
  Collections.sort(list,new StringLength());
  System.out.println(list);
 }
 
 //靜態方法sort()對List集合進行升序排序
 private static void method(){
  List<String> list = new ArrayList<String>();
  list.add("ewgr3");
  list.add("jthfdgv");
  list.add("qewf");
  list.add("hgdfs");
  list.add("qwef");
  System.out.println(list);
  //調用工具類,靜態方法sort
  Collections.sort(list);
  System.out.println(list);
 }
}

//=========================================
3.  binarySearch(list,key)集合的二分查找,折半查找
  只能用list集合,集合必須有序
  如果沒有這個對象,返回-插入點-1

import java.util.*;
public class CollectionsDemo1 {
 public static void main(String[] args) {
  List<String> list = new ArrayList<String>();
  list.add("rwgr");
  list.add("jhfgds");
  list.add("ewrdfg");
  list.add("mngbvc");
  list.add("asdcv");
  list.add("nbvcx");
  Collections.sort(list);
  System.out.println(list);
  //折半查找,返回一個索引
  int index = Collections.binarySearch(list, "mngbvc");
  System.out.println(index);
 }
}
//=========================================
  reverse(List<?> list) 集合的反轉,必須是List集合
  static void shuffle(List<?> list) 對集合隨機排列
  swap(List<?> list, int i, int j) 對集合指定下標,交互位置

 import java.util.*;
public class CollectionsDemo2 {
 public static void main(String[] args) {
  method_1();
 }
 //集合位置交換swap
 private static void method_2(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
 
  Collections.swap(list, 0, 3);
  System.out.println(list);
 }
 
 
 //隨機排列集合shuffle
 private static void method_1(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //隨機排列,shuffle方法
  Collections.shuffle(list);
  System.out.println(list);
 }
 
 //reverse()反轉集合
 private static void method(){
  List<String> list = new ArrayList<String>();
  list.add("ter");
  list.add("gddf");
  list.add("qwa3erdtf");
  list.add("bgv2fd1334");
  list.add("asdd");
  System.out.println(list);
  //反轉集合reverse()
  Collections.reverse(list);
  System.out.println(list);
 }
}

                    --------- android培訓java培訓、java學習型技術博客、期待與您交流! ------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章