可复制版
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> arrayList=new ArrayList<>();
//往集合中添加一些元素addAll(Collection<T> c,T...elements)
Collections.addAll(arrayList,"a","b","c","d","e");//这是一个可变参数的应用
System.out.println(arrayList);
//打乱集合中的元素shuffle(list<?> list)
Collections.shuffle(arrayList);
System.out.println(arrayList);
//将集合中的元素按照默认规则排序 排序sort
//sort(List<T> list)默认升序
Collections.sort(arrayList);
System.out.println(arrayList);
//给自定义的对象排序需要实现comparable接口
ArrayList<Person> p=new ArrayList<>();
p.add(new Person("a_name1",15));
p.add(new Person("b_name2",11));
p.add(new Person("c_name3",14));
p.add(new Person("d_name4",12));
p.add(new Person("e_name5",13));
p.add(new Person("f_name5",13));//年龄相同测试组
//先打乱顺序
Collections.shuffle(p);
System.out.println(p);
//进行排序
//comparable接口排序规则
//this-参数=升序,参数-this是降序
Collections.sort(p);
System.out.println(p);
//sort(List<T>,Comparator<? super T>)将集合中元素按照指定规则排序
//comparator与comparable的区别
//comparator找一个第三方裁判比较
Collections.shuffle(p);
Collections.sort(p, new Comparator<Person>() {
@Override
//重写比较的规则
public int compare(Person o1, Person o2) {
/* o2-o1 降序*/
int result= o1.getAge()-o2.getAge();//升序
if (result==0)//如果年龄相同使用首字母排序
{
result=o1.getName().charAt(0)-o2.getName().charAt(0);
}
return result;
}
});
System.out.println(p);
}
}