比较器.自然排序 自然排序
最编程
2024-04-28 11:54:38
...
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Stream;
public class Test1 {
/*
Comparator.naturalOrder() 方法返回一个比较器,该比较器以自然顺序比较可比较对象
说明如何使用Comparator.naturalOrder与Stream.sorted、Collections.sort、List.sort和Arrays.sort一起对对象的集合进行自然排序。
*/
public static void main(String[] args) {
// Java 8中引入的Comparator.naturalOrder方法返回一个比较器,该比较器以自然顺序比较可比较对象
List<Integer> numList = Arrays.asList(12, 10, 15, 8, 11);
// 8 10 11 12 15
// Stream.sorted返回一个由这个流的元素组成的流,根据提供的比较器进行排序
numList.stream().sorted(Comparator.naturalOrder()).forEach(n-> System.out.print(n+" "));
System.out.println("\n---------------------------");
// 自然排序
List<String> strList = Arrays.asList("Varanasi", "Allahabad", "Kanpur", "Noida");
strList.stream().sorted(Comparator.naturalOrder()).forEach(s -> System.out.print(s + " "));
System.out.println("\n---------------------------");
// 反向
strList.stream().sorted(Comparator.reverseOrder()).forEach(s -> System.out.print(s + " "));
System.out.println("\n---------------------------");
// Collections.sort根据给定的比较器实例对指定的列表进行排序
Collections.sort(numList, Comparator.naturalOrder());
numList.forEach(n -> System.out.print(n + " "));
System.out.println("\n---------------------------");
// List.sort根据给定的比较器实例对这个列表进行排序
numList.sort(Comparator.naturalOrder());
numList.forEach(n -> System.out.print(n + " "));
System.out.println("\n-----------");
// Arrays.sort根据指定的比较器引起的顺序对指定的对象阵列进行排序
Integer[] array = {12, 10, 15, 8, 11};
// public static <T> void sort(T[] a, Comparator<? super T> c)
Arrays.sort(array, Comparator.naturalOrder());
for (Integer integer : array) {
System.out.print(integer+" ");
}
}
}
学习摘录:https://mp.weixin.qq.com/s/eHpr84Apj4glyFCAlfxKPQ
原文地址:https://www.cnblogs.com/wuzimeimei/p/16067926.html
上一篇: Postgres 与 MySQL 的对比(2023 版)
下一篇: 高级编程语言与低级语言的比较
推荐阅读
-
Redux 排序与分析 [I: 减速器与调度]。
-
比较器.自然排序 自然排序
-
气泡排序(超级详细)--升序",从小到大;另一种是 "降序",从大到小。该主题可抽象为 "按升序对 n 个数字排序 "的一般形式。 排序是一种重要的基本算法。排序的方法有很多种,但在本题中我们将使用冒泡排序法。 冒泡法的基本思想 冒泡法的基本思想是,每次比较相邻的两个数字时,较小的那个会被移到前面。如果有 5 个数字9,8,5,2,0,第一次将前两个数字 8 和 9 互换。第二次将第二个和第三个数字(9 和 5)对调......这样一共对调 4 次,得到 8-5-2-0-9 的顺序,可以看到:最大的数字 9 一直在 "下沉",成为最下面的一个数字,而小的数字 "上升" 最小的数字 "上升"。最小的数字 0 已经向上 "浮 "了一个位置。经过第一次比较(共 4 次比较和交换),得到了最大的数字 9。 然后进行第二趟比较,对剩下的前 4 个数字(8、5、2、0)进行新一轮比较,这样第二个最大的数字就 "沉到了底部"。同样,按照上述方法进行第二轮比较。经过 3 次比较和交换,我们得到了第二大数 8。 按照这个规律,我们可以推断出,比较 5 个数字需要 4 次旅行,才能将 5 个数字从小到大排列起来。在第一次旅行中,两个数字之间进行了 4 次比较,在第二次旅行中,进行了 3 次比较......在第四次旅行中,只进行了一次比较。 思路总结 总结:如果有 n 个数字,那么要进行 n-1 次比较。在第一次行程中进行 n-1 次比较,在第 i 次行程中进行 n-i 次比较。
-
气泡排序(简明版)(概览)(与选择排序比较)
-
[源代码和文档共享] 基于 C 语言的八种排序算法比较
-
[排序算法]图解气泡排序(多图 + 解决两个无效比较问题)
-
排序算法的图形比较:快速排序、插入排序、选择排序、冒泡排序
-
[自然语言处理 VIII--翻译任务 I 的转换器实施(输入)]
-
比较是自然的,竞争是不可避免的
-
快速排序的时间复杂性和预期比较次数