java.utils.Collections 是集合工具类,用来对集合进行操作
①批量添加/打乱
public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素
public static void shuffle(List<?> list) 打乱顺序 :打乱集合顺序
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素
Collections.addAll(list,"a","b","c","d","e");
System.out.println(list);//[a, b, c, d, e]
//public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序
Collections.shuffle(list);
System.out.println(list);//[b, a, e, c, d] 每次运行都不同
}
②排序
public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序
public static <T> void sort(List<T> list,Comparator<? super T> ) :将集合中元素按照指定规则排序(自定义类型元素)
注意事项:
对自定义的对象进行排序的使用前提:
在自定义的类当中需要实现Comparable,重写接口中的comparable方法中定义排序的规则
Comparable排序规则:
自己(this)-参数:升序
参数-自己(this):降序
Person类
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", 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(Person o) {
//自定义比较规则,比较两个人的年龄
// return o.getAge()-this.getAge();//按年龄降序排序
return this.getAge()-o.getAge();//按年龄升序排序
}
}
main方法
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Collections.addAll(list,1,5,3);
//public static <T> void sort(List<T> list) :将集合中元素按照默认规则排序
Collections.sort(list);
System.out.println(list);
ArrayList<String> list1 = new ArrayList<>();
Collections.addAll(list1,"a","c","b");
Collections.sort(list1);
System.out.println(list1);
ArrayList<Person> list2 = new ArrayList<>();
list2.add(new Person("张三",18));
list2.add(new Person("李四",20));
list2.add(new Person("王五",15));
System.out.println(list2);
Collections.sort(list2);
System.out.println(list2);
}