Collections类概述:是针对集合操作的工具类
Collections类的常用方法:
1、public static <T extends Comparable <?super T>> void sort(List<T> list); 将指定的列表按升序排序;
2、public static void reverse(List<?>list); 反转指定列表中元素的顺序;
3、public static void shuffle(List<?>list); 使用默认的随机源随机排列指定列表;
package day42;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class CollectionsDemo01 {
public static void main(String[] args) {
//创建集合对象
List<Integer> list = new ArrayList<Integer>();
//添加元素
list.add(100);
list.add(10);
list.add(30);
list.add(40);
list.add(70);
System.out.println(list);
//调用collections的sort方法排序
Collections.sort(list);
//按照升序排序
System.out.println(list);
//反转方法排序
Collections.reverse(list);
System.out.println(list);
//随机置换,其实就是每次的顺序都是不一样的,随机的
Collections.shuffle(list);
System.out.println(list);
}
}
示例: 对array进行排序(需要重写compare方法)
代码如下
package day42;
public class Student {
private String name;
private int 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;
}
public Student(){}
public Student(String name, int age){
this.name = name;
this.age = age;
}
}
package day42;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionsDemo02 {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<Student>();
Student s1 = new Student("a",5);
Student s2 = new Student("b",7);
Student s3 = new Student("c",9);
Student s4 = new Student("d",5);
Student s5 = new Student("d",5);
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
array.add(s5);
//使用Collection sort方法来对年龄排序,要求年龄相同,按照字母越靠前排序
//通过匿名内部类来实现排序方法
Collections.sort(array, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
int num1 = o1.getAge() - o2.getAge();
int num2 = num1 == 0 ? o1.getName().compareTo(o2.getName()): num1;
return num2;
}
});
for(Student s: array){
System.out.println(s.getName()+','+s.getAge());
}
}
}