Java——Collections工具类
一、介绍
java.util.Collections是集合的工具类,里面提供了静态方法来操作集合、乱序、排序...
二、shuffle
public static void shuffle(List<?> list)
使用默认随机源对指定列表进行置换
- 乱序只能对List集合进行乱
- 集合中元素类型可以任意类型
例子
LinkedList<Integer> list = new LinkedList<>(); list.add(100); list.add(200); list.add(300); System.out.println(list); // [100, 200, 300] Collections.shuffle(list); System.out.println(list); // [200, 300, 100]
三、sort
sort方法是一个重载的方法,可以实现自然排序及自定义比较器排序。要特别注意的是sort方法只能对List集合进行排序
3.1、sort的自然排序
public static <T extends Comparable<? super T>> void sort (List<T> list)
例子
LinkedList<Integer> list = new LinkedList<>(); list.add(200); list.add(100); list.add(300); System.out.println(list); // [200, 100, 300] Collections.sort(list); System.out.println(list); // [100, 200, 300]
3.2、自定义比较器排序
public static <T> void sort (List<T> list, Comparator<? super T> c)
方法分析
- 该方法只能对List集合进行排序
- 从方法中泛型分析可知,集合中元素类型必须是Comparable的子类型
例子
List<Student> list = new LinkedList<>(); list.add(new Student("张三", 26)); list.add(new Student("李四", 23)); list.add(new Student("张三", 22)); list.add(new Student("王五", 26)); for (Student student : list) { System.out.println(student); // Student{name='张三', age=26} //Student{name='李四', age=23} //Student{name='张三', age=22} //Student{name='王五', age=26} } Collections.sort(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { if(o1.getAge() == o2.getAge()){ return o1.getName().compareTo(o2.getName()); }else{ return o1.getAge() - o2.getAge(); } } }); for (Student student : list) { System.out.println(student); //Student{name='张三', age=22} //Student{name='李四', age=23} //Student{name='张三', age=26} //Student{name='王五', age=26} }
四、addAll
该方法功能添加任意多个数据到集合中
static <T> boolean addAll(Collection<? super T> c, T... elements)
addAll是一个含有可变参数的方法,使用时可以传入任意多个实参,实用方便。
例子
List<Integer> list = new LinkedList<>(); Collections.addAll(list, 100, 200, 300); System.out.println(list); // [100, 200, 300]