类 Collections
java.lang.Object -java.util.Collections
public class Collections extends Object
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。 它包含在 collection 上操作的多态算法,即“包装器”, 包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException。
public static <T extends Comparable<? super T>> void sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序。 列表中的所有元素都必须实现 Comparable 接口 此外,列表中的所有元素都必须是可相互比较的 (也就是说,对于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。 此排序被保证是稳定的:不会因调用 sort 方法而对相等的元素进行重新排序,*即重复的可以保留
public static <T> int binarySearch(List<?> list,T key)
使用二分搜索法搜索指定列表,以获得指定对象(de索引)。 如果搜索键在列表内,则返回他的索引 否则返回-插入点-1
public static <T> T max(Collection<?> coll)
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
根据元素的自然顺序,返回给定 collection 的最大元素。 collection 中的所有元素都必须实现 Comparable 接口。 此外,collection 中的所有元素都必须是可相互比较的 (也就是说,对于 collection 中的任意 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。 此方法在整个 collection 上进行迭代,所以它需要的时间与 collection 的大小成正比。 参数: coll - 将确定其最大元素的 collection。 返回: 根据元素的自然顺序 返回给定 collection 的最大元素。
public static void reverse(List<?> list)
反转指定列表中元素的顺序。 此方法以线性时间运行。
public static void shuffle(List<?> list)
使用默认随机源对指定列表进行置换。所有置换发生的可能性都是大致相等的。
import java.util.ArrayList;
import java.util.Collections;
public class h {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
list.add("c");
list.add("a");
list.add("a");
list.add("b");
list.add("d");
System.out.println(list);
Collections.sort(list); //将集合排序
System.out.println(list);//[a, a, b, c, d]
ArrayList<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("c");
list1.add("d");
list1.add("f");
list1.add("g");
System.out.println(Collections.binarySearch(list1, "c"));//1
System.out.println(Collections.binarySearch(list1, "f"));//3
System.out.println(Collections.binarySearch(list1, "g"));//4
System.out.println(Collections.binarySearch(list1, "b"));//-1-1-2
ArrayList<String> list2 = new ArrayList<>();
list2.add("a");
list2.add("c");
list2.add("d");
list2.add("g");
list2.add("f");
//根据默认排序结果获取集合中的最大值
//先对其排序,然后返回最后一个元素
System.out.println(Collections.max(list2)); //g
Collections.reverse(list2);//反转集合
System.out.println(list2);//[f, g, d, c, a]
Collections.reverse(list2);
Collections.shuffle(list2);
//随机置换,可以用来洗牌,集合中的顺序随机变换位置
System.out.println(list2);//[d, a, c, f, g]
}
}