• 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);
        }
  • 相关阅读:
    Mysql的transaction实现(转)
    开启博客模式。
    chromium获取代码和编译
    Chrome的Crash Report服务
    chromiun 学习《二》 目录结构 +启动流程
    CreateCompatibleDC与BitBlt 学习
    字符编码
    chromiun 学习《一》
    毕业后的一段日子
    学习计划
  • 原文地址:https://www.cnblogs.com/go4mi/p/12457481.html
Copyright © 2020-2023  润新知