JAVA Arrays.sort()和Collectons.sort() 原理分析
2017-09-24 10:18
471 查看
今天终于答辩结束,I’M FREEDOM!!! ^—^
首先Collections内部也是使用Arrays的sort实现的,因此着重分析Arrays类内的sort是如何实现的
主要分两种:
对于基本类型,使用调优的快排,双指针快排
对于引用类型,采用改进的归并排序 TimSort()
注意以下都是JDK8内的实现
对于快排的优化是:
首先当数组元素个数小于286的时候,优先使用快排。
//TODO 未完成
首先Collections内部也是使用Arrays的sort实现的,因此着重分析Arrays类内的sort是如何实现的
主要分两种:
对于基本类型,使用调优的快排,双指针快排
对于引用类型,采用改进的归并排序 TimSort()
注意以下都是JDK8内的实现
对于快排的优化是:
public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0); }
// Use Quicksort on small arrays if (right - left < QUICKSORT_THRESHOLD) { sort(a, left, right, true); return; }
首先当数组元素个数小于286的时候,优先使用快排。
public static void sort(Object[] a) { if (LegacyMergeSort.userRequested) legacyMergeSort(a); else ComparableTimSort.sort(a, 0, a.length, null, 0, 0); }
//TODO 未完成
相关文章推荐
- java的Arrays.sort(Object[] a)方法源码分析
- java源码分析:Arrays.sort
- java中的Arrays.asList()底层原理分析
- java Arrays.sort 源码分析
- Java Collections Framework之Arrays(method:sort(),binarySearch(),copyOf())部分源码分析(基于JDK1.6)
- java源码分析:Arrays.sort
- java中Arrays.sort()实现原理
- java.util.Arrays.sort方法简单分析
- Java中Arrays.sort排序源码分析
- Java CAS 原理分析
- Java NIO原理 图文分析及代码实现
- 深入分析 Java 方法反射的实现原理
- Java NIO原理 图文分析及代码实现
- Java 阻塞队列实现原理分析
- Java集合---TreeSet原理分析
- java基础解析系列(七)---ThreadLocal原理分析
- Java NIO原理图文分析及代码实现
- Java中递归原理实例分析
- Java NIO原理 图文分析及代码实现
- Java Annotation原理分析(五) --- JUnit案例分析