• comparison method violates 必现


    public static void main(String[] args) {
            // list size > 32
            List<Integer> list = new ArrayList<>();
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
    
            Collections.sort(list, new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o1 > o2 ? 1 : -1;
                }
            });
    
            System.out.println(list);
        }

    解决

    public static void main(String[] args) {
            // list size > 32
            List<Integer> list = new ArrayList<>();
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
            list.add(5);
            list.add(1);
            list.add(9);
            list.add(5);
            list.add(1);
            list.add(5);
            list.add(11);
            list.add(5);
    
            Collections.sort(list, new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o1.equals(o2) ? 0 : o1 > o2 ? 1 : -1;
                }
            });
    
            System.out.println(list);
        }
  • 相关阅读:
    怎样在Windows下编译OpenVRML
    Virtools脚本语言(VSL)教程 结构
    Virtools脚本语言(VSL)教程 枚举
    基于Python及Wx的离线Blog发布工具Zoundry Raven
    Virtools脚本语言(VSL)教程 使用 GUID
    Khronos关于WebGL最新进展
    【转】在EditPlus中利用正则表达式替换字符串
    Virtools脚本语言(VSL)教程 全局变量bc与ac
    VrmlPad3.0发布
    WebGL样品与演示
  • 原文地址:https://www.cnblogs.com/go4mi/p/12457481.html
Copyright © 2020-2023  润新知