zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    导出大智慧L2要密码的公式
    SQL Server 索引结构及其使用
    职业式证券交易全貌向职业交易员进军者鉴[转]
    sqlite多字段拼接方法
    推荐两个UI、PSD文件搜索网站
    利用事件冒泡和阻止事件冒泡的例子
    js通过八个点 拖动改变div大小
    匿名函数运用js脚本一对圆括号
    js对象转换为json格式的jquery辅助类
    简单清晰的缓冲运动框架
  • 原文地址:https://www.cnblogs.com/go4mi/p/12457481.html
Copyright © 2011-2022 走看看