`

jdk1.7和jdk1.6的Collections.sort方法不一样

 
阅读更多
Collections.sort(list, new Comparator<AAAVo>() {
                        @Override
                        public int compare(AAAVo vo1, AAA vo2) {
                            if(vo1==null||vo2==null){
                                return 0;
                            }
                            if(Integer.valueOf(vo1.getCouponValue())<Integer.valueOf(vo2.getCouponValue())){
                                if(vo1.getConsumeTime().after(vo2.getConsumeTime())) {
                                    return 1;
                                }else{
                                    return -1;
                                }
                            }else{
                                return -1;
                            }
                        }
                    });


如果有三条数据 value为50、10、10
jdk1.6的情况下走不到
if(vo1.getConsumeTime().after(vo2.getConsumeTime()))

1.7时可以走到。因为 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其对对象间比较的实现要求更加严格
分享到:
评论

相关推荐

    JDK1.7 64位官方版

    2. **多路归并排序**:Java 7的`Arrays.sort()`方法和`Collections.sort()`方法采用了新的多路归并排序算法,提升了大规模数据排序的性能。 3. **try-with-resources**:这个新语法简化了资源管理,尤其是文件或...

    jdk1.7免安装版

    此外,`Collections.sort()`方法现在也可以对并行数组进行排序,提升了性能。 JDK1.7还增强了枚举类型,允许枚举实现多个接口,并且支持枚举类型的实例间比较。 在并发处理上,JDK1.7提供了一个新的Fork/Join框架...

    jdk1.7 64位

    3. **多路归并排序**:Java 7的`Arrays.sort()`和`Collections.sort()`方法采用了新的多路归并排序算法,提高了大规模数据排序的效率。 4. **文件系统API增强**:NIO.2引入了更现代的文件系统API,提供了异步I/O...

    jdk1.7+api+英文版

    JDK 1.7的API文档是开发者的宝贵资源,它详细解释了每个类、接口和方法的用途和用法。 **JDK 1.7 的主要特性** 1. **钻石运算符(Diamond Operator)**: 在创建匿名内部类或泛型实例时,自动推断类型参数,简化了...

    jdk1.7 7u80 64位

    4. **多路归并排序**:Java 7引入了一个新的并发排序算法,提高了`Arrays.sort()`和`Collections.sort()`的性能。 5. **新文件系统API (NIO.2)**:提供了更高级别的文件操作,如路径、文件属性和异步I/O。 6. **...

    jdk1.7.0_80_x86_32.zip

    - **多路归并排序**:JDK7中的`Arrays.sort()`和`Collections.sort()`方法使用了新的多路归并排序算法,提高了排序性能。 - **Fork/Join框架**:用于并行执行任务,提高计算密集型任务的执行效率。 - **元空间**...

    JAVA_API_1.7中文.chm

    10. **集合框架的改进**:`Collections.sort()`方法现在支持自定义比较器的并发排序,`ArrayList`和`LinkedList`的构造函数也有所优化。 这些只是JDK7 API中的一部分重要改动,实际文档中包含的远不止这些。通过...

    jdk-7u80-windows-x64.zip

    2. **多路归并排序**:Java 7的`Arrays.sort()`和`Collections.sort()`方法使用了更高效的多路归并排序算法,提高了大规模数据排序的性能。 3. **文件系统API增强**:NIO.2(New I/O 2)引入了`java.nio.file`包,...

    jdk8新特性.md

    JDK 8 允许在接口中定义默认方法(使用 `default` 关键字)和静态方法(使用 `static` 关键字),这为实现接口提供了更多的灵活性。 - **示例**: ```java interface MyInterface { default void myMethod() { ...

    10个Java经典的List面试题!.pdf

    ArrayList的默认大小在JDK1.7之前是10,而在JDK1.7之后是0。ArrayList的扩容机制是 ogni次扩容约按1.5倍。 7.List是线程安全的吗?如果要线程安全要怎么做? List中只有Vector是线程安全的,其他的List实现都不是...

    10个Java经典的List面试题

    List 可以使用自身的 sort 方法,或者使用 Collections.sort() 方法来排序。 9. Arrays.asList 方法后的 List 可以扩容吗? Arrays.asList 使用的是 final 数组,并且不支持 add 方法,不支持扩容。 10. List 和 ...

    javaAPI1.7机器翻译,

    尽管这里的翻译可能不完整,但它仍能为开发者提供大部分关键功能的解释,帮助他们理解和使用Java 1.7中的各种类和方法。 在Java 1.7(也被称为Java 7)中,引入了一些重要的新特性,例如: 1. **类型推断(Type ...

    Java 面试资源(基础 多线程)

    包含四个文件:java 基础上 基础下,多线程和集合。 Java集合框架的基础接口有哪些 Collection 和 Collections 有什么区别 List、Set、Map是否继承自Collection接口 Collections.sort排序...JDK1.8与JDK1.7的性能对比

    Java经典的List面试题目

    可以使用List自身的`sort()`方法,或者使用`Collections.sort(list)`静态方法对List进行排序。这两个方法都会按照自然排序或自定义比较器进行排序。 9. **Arrays.asList方法后的List可以扩容吗?** `Arrays....

    Java ArrayList实现的快排,归并排序,堆排序

    在JDK 1.7版本中,ArrayList的实现已经优化,提供了`Collections.sort()`方法,它默认使用TimSort算法,这是一种结合了归并排序和插入排序的混合排序算法,既保证了稳定性,又在大部分情况下有良好的性能表现。...

    02-Java集合容器面试题-重点.docx

    HashMap的底层实现JDK1.8之前JDK1.8之后JDK1.7 VS JDK1.8比较HashMap的put方法的具体流程?HashMap的扩容操作是怎么实现的?HashMap是怎么解决哈希冲突的?什么是哈希?什么是哈希冲突?HashMap的数据结构hash()函数...

    Java面经.适用于校招

    - Java反射机制允许程序在运行时访问和操作类、接口、字段和方法等对象。 1.12 JDK、NDK、JRE、JNI - JDK(Java Development Kit)是用于开发Java程序的工具包。 - NDK(Native Development Kit)允许开发者用C或...

    02-Java集合容器面试题(2020最新版)-重点.pdf

    - **JDK1.7与JDK1.8的区别**:JDK1.7中采用链表+数组的实现,JDK1.8引入了红黑树优化链表。 - **底层实现**:基于哈希表实现。 - **扩容操作**:当负载因子超过阈值时触发扩容,扩容后容量为原来的两倍。 - **解决...

    Java集合框架面试题

    9. ConcurrentHashMap 是一个线程安全且高效的 HashMap 的实现,在 jdk1.7 中采用分段锁的方式实现同步,由 Segment 数组组成,每个 segment 又由 HashEntry 数组组成;在jdk1.8 中直接采用 CAS+synchronized。

Global site tag (gtag.js) - Google Analytics