关于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);
}
}