Java笔记(二十四)……集合工具类Collections&Arrays
Collections
集合框架的工具类,方法全部为静态
Collections与Collection的区别
Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法
Collections是集合框架的一个工具类,该类中的方法都是静态的,提供的方法中可以对List集合进行排序,二分查找等,通常常用的集合都是线程不安全的,因为要提高效率,如果多线程操作这些集合时,可以通过该工具类的同步方法,将线程不安全的集合转换成安全的
常用方法
对List进行排序
static <T extends Comparable<? super T>>
voidsort(List<T> list)
static <T> void
sort(List<T> list, Comparator<? super T> c)
对List进行二分查找
static <T> int
binarySearch(List<? extends Comparable<? super T>> list, T key)
static <T> int
binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
逆转排序比较器
static <T> Comparator<T>
reverseOrder()
static <T> Comparator<T>
reverseOrder(Comparator<T> cmp)
获取线程安全的集合
static <T> Collection<T>
synchronizedCollection(Collection<T> c)
随机对List方法中的元素进行置换
static void
shuffle(List<?> list)
static void
shuffle(List<?> list, Random rnd)
Arrays
用于操作数组的工具类,里面的方法都是静态的
常用方法
将数组转换成List集合
static <T> List<T>
asList(T... a)
(T… a)为可变参数,写在参数列表的最末尾
将数组转成List集合有何好处
可以使用集合的思想和方法才操作数组
注:
不可以对数组转成的List集合进行增删操作,因为数组的长度是固定的,如果增删,会产生UnsupportedOperationException
如果数组中的元素都是对象,那么变集合时,集合中存储的都是数组中的元素
如果数组中的元素是基本数据类型,那么会将数组作为元素存储在集合中
静态导入
import static java.util.Arrays.*;
导入的是Arrays这个类中的所有静态成员
当类名重名时,需要指定具体的包名
当方法重名时,需要指定具体的对象或类