Collections集合工具类方法
Collections集合工具类方法
public static <T> boolean addAll(Collection<T> c,T...elements)往集合中添加一些元素
public static void shuffle(List<?> list) 打乱集合顺序
public class Demo03Collections {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//往集合中添加多个元素
/*list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");*/
//往集合中添加一些元素
Collections.addAll(list,"a","b","c","d","e");
System.out.println(list);//[a, b, c, d, e]
//打乱集合顺序
Collections.shuffle(list);
System.out.println(list);//[b, d, a, c, e],每次顺序都不一样
}
}
public static <T> void sort(list <T> list):将集合中的元素按照默认规则排序。
使用前提:如果被排序的集合里边存储的元素是自定义类型,必须实现Comparable,重写接口在的方法compareTo定义排序的规则
package C0llections;
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 +
'}';
}
//重写排序规则
@Override
public int compareTo(Person o) {
//return 0;认为元素都是相同的
//自定义比较的规则,比较两个人的年龄(this.参数Person)
return this.getAge()-o.getAge();//年龄升序排序
//return o.getAge()-this.getAge();//年龄降序排序
}
}//省略Getter/Setter方法
public class Demo02Sort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
Collections.addAll(list01,1,3,2);
System.out.println(list01);//[1, 3, 2]
//将集合中元素按照默认顺序排序
Collections.sort(list01);
System.out.println(list01);//[1, 2, 3]
ArrayList<String> list02 = new ArrayList<>();
Collections.addAll(list02,"a","c","d","b");
System.out.println(list02);//[a, c, d, b]
Collections.sort(list02);
System.out.println(list02);//[a, b, c, d]
ArrayList<Person> list03 = new ArrayList<>();
list03.add(new Person("张三",12));
list03.add(new Person("李四",165));
list03.add(new Person("王五",19));
System.out.println(list03);//[Person{name='张三', age=12}, Person{name='李四', age=165}, Person{name='王五', age=19}]
Collections.sort(list03);
System.out.println(list03);
/*[Person{name='张三', age=12},
Person{name='王五', age=19},
Person{name='李四', age=165}]*/
}
}
public static <T> void sort(List<T> list,Comparator<?super T>):将集合中元素按指定规则排序。
Comparator和Comparable区别:
Comparator:相当于找一个第三方的裁判,比较两个。
Comparable:自己(this)和别人(参数)比较,自己需要实现Comparable接口,重写比较的规则compareTo方法。
public class Sort {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
Collections.addAll(list01,1,1,3,2);
System.out.println(list01);//[1, 1, 3, 2]
Collections.sort(list01, new Comparator<Integer>() {
//重写比较规则
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;//升序
}
});
System.out.println(list01);//[1, 1, 2, 3]
}
}
浙公网安备 33010602011771号