Java Collections.sort()方法及实例
java.util.Collections.sort() 方法存在于java.util.Collections类中。它用于将指定的集合列表中的元素按升序排序。它的工作原理类似于java.util.Arrays.sort()方法,但它比它更好,因为它可以对数组中的元素进行排序,也可以对链接列表、队列和许多其他元素进行排序。
myList : 一个我们想要排序的列表类型对象。
该方法不返回任何东西
例子。
以升序对数组列表进行排序
输出
时间复杂度 :O(N log N),因为Collections.sort()的时间复杂度是O(nlog(n))。
辅助空间 :O(1)
对ArrayList进行降序排序
输出
时间复杂度: O(N log N),因为Collections.sort()的时间复杂度是O(nlog(n))。
辅助空间: O(1)
根据用户定义的标准对ArrayList进行排序 我们可以使用比较器接口来实现这一目的。
输出
Arrays. sort() vs Collections.sort() Arrays.sort适用于数组,也可以是原始数据类型。Collections.sort()适用于对象集合,如ArrayList、LinkedList等。我们可以使用Collections.sort()在给定数组项目创建ArrayList后对数组进行排序。
输出
Arrays.sort() vs Collections.sort() 的时间复杂度
Arrays.sort()使用Dual-Pivot Quicksort算法,其时间复杂度为O(N.log N),通常比传统Quicksort算法快。另一方面,Collections.sort()创建了一个列表元素的数组,使用自适应的Mergesort算法对它们进行排序,并在列表上进行迭代,将每个元素放在正确的位置。因此,对于原始数据类型如int、char、double等。Arrays.sort()被证明比Collections.sort()更节省时间。涉及原始数据类型的问题应该尝试使用Arrays.sort()来解决,以达到更好的优化效果。
下面的代码展示了这一区别。
输出