Collections此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
常用方法:
1、sort方法
<span style="white-space:pre"> </span>public static <T extends Comparable<? super T>> void sort(List<T> list)//此方法接收一个List集合,集合里的元素必须具备可比性
<pre><span style="white-space:pre"> </span>public static <T> void <strong>sort</strong>(<a target=_blank title="java.util 中的接口" href="">List</a><T> list, <a target=_blank title="java.util 中的接口" href="">Comparator</a><? super T> c)//此方法接收一个List集合,和一个比较器,用于集合元素的比较
示:
<span style="white-space:pre"> </span>ArrayList<String> list = new ArrayList<String>();//创建一个ArrayList集合
//填充值
list.add("aaa");
list.add("ccc");
list.add("bbb");
Collections.sort(list);//排序
//打印
for(String s:list){
System.out.println(s);
}
结果为:aaa bbb ccc
定义一个按字符长度排序的比较器:
class Mycomparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));
if (num == 0) {
return o1.compareTo(o2);
}
return num;
}
}
使用此比较器:
<span style="white-space:pre"> </span>ArrayList<String> list1 = new ArrayList<String>();// 创建一个ArrayList集合
// 填充值
list1.add("aaaa");
list1.add("ccc");
list1.add("bb");
Collections.sort(list1,new Mycomparator());// 排序
// 打印
for (String s : list1) {
System.out.println(s);
}
打印为 :bb ccc aaaa
2、binarySearch
使用二分搜索法搜索指定列表,以获得指定对象。在进行此调用之前,必须根据列表元素的 自然顺序对列表进行升序排序(通过
sort(List)
方法)。如果没有对列表进行排序,则结果是不确定的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。
<pre><span style="white-space:pre"> </span>public static <T> int <strong>binarySearch</strong>(<a target=_blank title="java.util 中的接口" href="">List</a><? extends <a target=_blank title="java.lang 中的接口" href="">Comparable</a><? super T>> list, T key)
参数1、List集合
参数2、要查的key
3、reverseOrder()
方法 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
fill(List<? super T> list, T obj)
使用指定元素替换指定列表中的所有元素。
5、replaceAll(List<T> list, T oldVal, T newVal)
使用另一个值替换列表中出现的所有某一指定值。
<span style="white-space:pre"> </span>ArrayList<String> list1 = new ArrayList<String>();// 创建一个ArrayList集合
// 填充值
list1.add("aaaa");
list1.add("ccc");
list1.add("bb");
Collections.replaceAll(list1,"bb","dd");// 排序
6、
synchronizedList(List<T> list)
返回指定列表支持的同步(线程安全的)列表(List集合是不同步的,高效)
7、
shuffle(List<?> list)
使用默认随机源对指定列表进行置换。(打乱List集合里面的元素)