常用方法:
public static < T> void sort(List list):默认情况下是自然顺序,还可以设置比较排序public static < T> int binarySearch(List< ?> list,T key):二分查找public static < T> T max(Collection< ?> coll):最大值public static void reverse(List< ?> list):反转public static void shuffle(List< ?> list):随机置换 package cn; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.ArrayList; import cn.Student; public class CollectionsTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); // 添加元素 list.add(11); list.add(12); list.add(14); list.add(13); list.add(15); System.out.println("------------add--------------"); System.out.println(list); System.out.println("------------max--------------"); System.out.println("max:"+Collections.max(list)); System.out.println("------------自然sort--------------"); Collections.sort(list); System.out.println(list); System.out.println("------------binarySearch--------------"); System.out.println(Collections.binarySearch(list, 30)); System.out.println("------------shuffle--------------"); Collections.shuffle(list); System.out.println(list); System.out.println("------------reverse--------------"); Collections.reverse(list); System.out.println(list); System.out.println("------------比较器sort--------------"); List<Student> list2 = new ArrayList<Student>(); // 创建元素 Student s1 = new Student("abc", 27); Student s2 = new Student("abc", 29); Student s3 = new Student("bcd", 23); Student s4 = new Student("efd", 27); Student s5 = new Student("cfd", 22); Student s6 = new Student("cdf", 40); Student s7 = new Student("bed", 22); // 添加元素 list2.add(s1); list2.add(s2); list2.add(s3); list2.add(s4); list2.add(s5); list2.add(s6); list2.add(s7); //如果排序既有自然排序(student 实现 Comparator接口),又有比较器排序(Collections.sort(集合,实现比较接口Comparator)),以比较器排序为主 //比较器排序需要Collections.sort(集合,实现比较接口Comparator); Collections.sort(list2, new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { return s1.getName().compareTo(s2.getName()); } }); // 遍历 for (Student s : list2) { System.out.println(s.getName() + "---" + s.getAge()); } } } 输出: ------------add-------------- [11, 12, 14, 13, 15] ------------max-------------- max:15 ------------自然sort-------------- [11, 12, 13, 14, 15] ------------binarySearch-------------- -6 ------------shuffle-------------- [11, 12, 14, 13, 15] ------------reverse-------------- [15, 13, 14, 12, 11] ------------比较器sort-------------- abc---27 abc---29 bcd---23 bed---22 cdf---40 cfd---22 efd---27 package cn; /* * 如果一个类的元素要想能够进行自然排序,就必须实现自然排序接口 */ public class Student implements Comparable<Student> { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Student s) { //按照年龄排序 int num1= this.getAge()-s.getAge(); ////如果年龄相同,按名字排序 int num2=num1==0?(this.getName().compareTo(s.getName())):num1; return num2; } }