Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较器和可比接口中使用的内部排序技术是什么?为什么?_Java_Sorting_Comparator_Comparable - Fatal编程技术网

Java 比较器和可比接口中使用的内部排序技术是什么?为什么?

Java 比较器和可比接口中使用的内部排序技术是什么?为什么?,java,sorting,comparator,comparable,Java,Sorting,Comparator,Comparable,关于Java中的Comparable和Comparator接口,我想问一下,内部使用的排序技术是什么,与其他排序技术相比,使用排序技术的原因是什么 可比和比较器都是接口。他们所做的只是定义一种询问一个对象是否大于、等于或小于另一个对象的方式 接口不强制执行这意味着什么-这取决于实现接口的类。因此,一个比较者可能会说亚当比比尔更伟大,因为在字母表中A排在B之前。另一个比较者可能会说比尔比亚当更伟大,因为比尔在公司工作的时间更长 任何排序算法都需要能够比较两个项目,以知道哪一个应该在输出中首先出现。

关于Java中的Comparable和Comparator接口,我想问一下,内部使用的排序技术是什么,与其他排序技术相比,使用排序技术的原因是什么

可比和比较器都是接口。他们所做的只是定义一种询问一个对象是否大于、等于或小于另一个对象的方式

接口不强制执行这意味着什么-这取决于实现接口的类。因此,一个比较者可能会说亚当比比尔更伟大,因为在字母表中A排在B之前。另一个比较者可能会说比尔比亚当更伟大,因为比尔在公司工作的时间更长

任何排序算法都需要能够比较两个项目,以知道哪一个应该在输出中首先出现。若您编写了冒泡排序,那个么可以使用Comparator来比较项目

Java在一些地方内置了排序,包括Arrays.sort、Collections.sort、Stream::sorted

数组和集合的JavaDoc声明:

该实现改编自Tim Peters的列表排序for Python TimSort。它使用了彼得·麦克罗伊(Peter McIlroy)在《第四届ACM-SIAM离散算法年度研讨会论文集》(第467-474页,1993年1月)中提出的乐观排序和信息论复杂性的技术


JavaDoc for Stream没有指定排序方法-我怀疑这是因为实现可以自由变化。

Comparable和Comparator都不会进行任何排序。这将帮助您了解Comparable和Comparator接口的功能。。。是一个接口。它没有内部结构。好的,可以说在Java8中这不再是严格意义上的正确。但这对于可比和比较者来说无疑是正确的。