java中list的sort()功能如何使⽤?如果倒序如何正序?
list.sort()接收⼀个Comparable接⼝,其中compare⽅法是必须实现的,int compare(T o1, T o2);,它接受两个参数:o1,o2. o2表⽰list排序前的前值,o1为后值,compare对他们通过⽐较进⾏排序。compare如果返回1则表⽰o1在后,o2在前(等价于位置不变);返回-1表⽰o1在前o2在后(等价置换o1与o2的位置);返回0表⽰位置不变
可以使⽤lambda表达式进⾏从⼩到⼤排序:
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 10; i++) {
list.Int(100));
}
/
/ 从⼩到⼤排序
list.sort((o1, o2) -> {
if (o1.equals(o2)) {
return 0;用sort out
} else if (o1 > o2) {
//o2为前值,o1为后值;这⾥理解为:后值⽐前值⼤,则不交换位置,等价从⼩到⼤排序
//如果这⾥返回 -1,则为从⼤到⼩排序
return 1;
} else {
//后值⽐前值⼩,则交换位置
return -1;
}
});
list.forEach(e -> System.out.print(e + " "));
}
如果需要从⼤到⼩排序,只需要将代码中return 1改成return -1, return -1改成return 0即可.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论