Collections工具类中的常用方法:
-
reverse(List list);
- 反转list集合中的元素
-
shuffle(List list);
- 对list集合元素进行随机排序
-
sort(List list);
- 根据元素的自然排序对指定的List集合元素按升序排序
-
sort(List list , Comparator comparator);
- 根据指定的Comparator类中指定的排序方法进行排序
-
Object max(Collection collection);
- 根据集合中存储的元素所在类中重写的compare()方法进行排序,也就是根据自然排序进行排序出的结果选出最大值
-
Object max(Collection collection , Comparator Comparator);
- 根据定制排序选取出集合中的最大值
-
Object min(Collection collection);
- 根据元素的自然排序选出参数集合中的最小值
-
Object min(Collection collection);
- 根据元素的定制排序选出参数集合中的最小值
-
swap(List list , int x , int y);
- 将参数集合中的第x个索引位置处的元素和第y个索引位置处的元素进行交换位置
-
int frequency(Collection collection , Object object);
- 返回指定的集合中的object元素出现的个数
-
void copy(List dest , List src);
- 将src中的内容复制到dest集合中来
- 我们在使用这个方法时可能会出现一些问题,可能会出现角标越界异常,关于如何避免这个异常我们会在后面Collections工具类中的常用方法句具体去讲
- 这里我们使用这个copy()方法的时候可能会出现一些问题,可能会出现空指针异常,这个时候我们创建这个dest集合时初始状态就要创建一个size为rec.size的集合对象,如果不是就会出现角标越界异常(IndexOutOfBoundException)
-
boolean replaceAll(List list , Object oldVal , Object newVal);
- 使用新值替换所有的list对象中的旧值
- oldVal是旧值,newVal是新值
-
synchronizedXxx();
-
这个方法是一个同步控制方法,我们使用对应的集合的这个方法就可以将我们的参数集合转换为一个线程同步的集合
-
eg:
List list = new ArrayList(); /* 这里我们就调用了Collections工具类中的synchronizedXxx()方法,这个方法后返回一个线程安全的list对象 */ List list = Collections.synchronized(list);
-
-
addAll(Collection collection, Object …element);
- 这个方法的第二个参数是一个可变长度的参数 —> 我们又称之为可变形参
- 这个方法的就是将我们的可变形参对应的传入的实参都传入到collection集合中
- 这里的可变形参其实本质上就是一个数组
- 一个参数列表中只能有一个可变形参,并且这个可变形参只能是在参数列表中的最后一个位置处
-
emptyXxx();
- 这个方法没有参数
- 这个方法会返回一个空的集合,返回的空的集合不可以修改,如果修改就会出现一个运行时异常 UnsupportedOperationException — > 就是不支持操作异常
- 这个方法返回的这个空集合只是为了满足语法上的判断需要
- 如果返回一个null时,这个时候可能会出现空指针
- 如果返回的是一个new出来的实例对象,这个时候又比较浪费空间
注意: 这个方法经常会在面试中被问到,所以之后需要我们进行深入理解
- fill(Collection collection,Object object);
- 这个方法就是使用参数object填充参数集合
- 也就是不管原来的集合中存储的数据为什么,当我们使用了这个方法之后我们的参数集合中全部都是参数object
- 这个方法就是使用参数object填充参数集合