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]

浙公网安备 33010602011771号