一次性添加所有元素
ArrayList<String> list=new ArrayList<>(); /*list.add("aaa"); list.add("bbb"); list.add("ccc"); System.out.println(list);*/ //addAll(Collection<? super T> c, T... elements) //将所有指定的元素添加到指定的集合。 Collections.addAll(list,"aaa","bbb","ccc");[aaa, bbb, ccc, dd] [ccc, bbb, aaa, dd]
[ABC, def, ccc] [ABC, ccc, def] [1, 3, 2, 1] [1, 1, 2, 3] [Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}, Person{name=‘王五’, age=13}] [Person{name=‘王五’, age=13}, Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}]
代码;
public class Demo03Sort { public static void main(String[] args) { ArrayList<Integer> list1=new ArrayList<>(); list1.add(1); list1.add(3); list1.add(2); list1.add(1); System.out.println(list1); Collections.sort(list1,new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { // return o1-o2;//升序 return o2-o1;//降序 } }); System.out.println(list1); ArrayList<Person> list2=new ArrayList<>(); list2.add(new Person("张三",16)); list2.add(new Person("李四",22)); list2.add(new Person("王五",13)); System.out.println(list2); Collections.sort(list2, new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return o1.getAge()-o2.getAge(); } }); System.out.println(list2); ArrayList<Person> list3=new ArrayList<>(); list3.add(new Person("张三",16)); list3.add(new Person("李四",22)); list3.add(new Person("a王五",13)); list3.add(new Person("b张三",13)); System.out.println(list3); Collections.sort(list3, new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { int res=o1.getAge()-o2.getAge(); if(res==0) { res=o1.getName().charAt(0)-o2.getName().charAt(0); } return res; } }); System.out.println(list3); } }[1, 3, 2, 1] [3, 2, 1, 1] [Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}, Person{name=‘王五’, age=13}] [Person{name=‘王五’, age=13}, Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}] [Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}, Person{name=‘a王五’, age=13}, Person{name=‘b张三’, age=13}] [Person{name=‘a王五’, age=13}, Person{name=‘b张三’, age=13}, Person{name=‘张三’, age=16}, Person{name=‘李四’, age=22}]
/*Comparator与comparable比较
comparable需要调用自己(this)和别人(参数)比较,自己需要实现comparable接口,重写比较的规则CompareTo方法comparator相当于找一个第三方裁判,比较两个*/