共计 1039 个字符,预计需要花费 3 分钟才能阅读完成。
addAll();
往汇合中增加一些元素
Collections.addAll(str, "a", "b", "c");
shuffle();
随机打乱汇合
Collections.shuffle(str);
sort(List<T> list);
将汇合中的元素依照默认规定排序(升序)
Collections.sort(str);
对自定义类型排序(除非 重写 compareTo()办法 ),否则不能用。
必须实现 Compare 接口,重写 compareTo 办法定义排序。
public class Person implements Comparable<Person>{
@Override
public int compareTo(Person o) {
//return 0; // 认为元素都是雷同的
// 自定义规定,比拟年龄(this. 参数 Person)return this.getAge() - o.getAge(); // 升序
return o.getAge() - this.getAge(); // 降序
}
}
Comparable 接口排序规定:
本人(this) - 参数:升序
参数 - 本人(this):降序
sort(List<T> list, Comparator<? super T>);
将汇合中元素依照指定规定排序
Comparable 和 Comparator 的区别:
Comparable:本人(this)和他人(参数)比拟,本人须要实现 Comparable 接口,重写 compareTo 办法。
Comparator:相当于找一个第三方的裁判,比拟两个
也须要重写比拟办法 compare();
Collections.sort(str, new Comparator<Integer>() {
// 重写比拟的规定
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2; // 升序
// return o2 - o1; // 降序
}
});
Collections.sort(str, new Comparator<Person>() {
// 重写比拟的规定
@Override
public int compare(Person o1, Person o2) {int i = o1.getAge() - o2.getAge();
if (i == 0) {
// 如果年龄统一,比拟字符串
return o1.getName().charAt(0) - o2.getName().charAt(0);
} else {return o1.getAge() - o2.getAge();}
}
});
正文完