黑馬程序員---Java中的Collections工具類
關於Java中的Collections工具類
//=========================================
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);
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.