一:Collections 工具类
- Collections是一个提供对集合对象进行各种操作的静态方法的工具类,包括排序、搜索、线程安全化、同步控制等
- Java里关于集合的工具类,包含有各种有关集合操作的静态方法,不能实例化(把构造函数私有化)
- 和Collection的区别
- Collection是接口,提供了对集合对象进行基本操作的通用接口方法,List、Set等多种具体的实现类
- Collections是工具类,专门操作Collection接口实现类里面的元素
二:常见方法
- 排序 sort(List list)
-
按自然排序的升序排序
package chapter8; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class CollectionsDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaa"); list.add("zzzz"); list.add("bbbb"); System.out.println("list升序前:" + list); Collections.sort(list); System.out.println("list升序后:" + list); } } /** 运行结果: list升序前:[aaaa, zzzz, bbbb] list升序后:[aaaa, bbbb, zzzz] */
-
sort(List list, Comparator c) 自定义排序规则,由Comparator控制排序逻辑
package chapter8; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class CollectionsDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaa"); list.add("zzzz"); list.add("bbbb"); //默认升序 Collections.sort(list, Comparator.naturalOrder()); System.out.println("list升序:" + list); //降序 Collections.sort(list,Comparator.reverseOrder()); System.out.println("list降序:" + list); } } /** 运行结果: list升序:[aaaa, bbbb, zzzz] list降序:[zzzz, bbbb, aaaa] */
-
- 随机排序 shuffle(List list)
package chapter8;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
test1();
}
public static void test1(){
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("J");
list.add("Q");
list.add("K");
System.out.println("list:" + list);
Collections.shuffle(list);
System.out.println("打乱后: " + list);
}
}
/**
运行结果:
list:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]
打乱后: [K, 3, 10, 5, 7, 8, 4, Q, 6, 1, 9, J, 2]
*/