List.sort()排序报错的问题?

首先贴出报错代码

 public static void main(String[] args) {
        List<Integer> ases = new ArrayList<>(Arrays.asList( -1, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, -1, 0, 1, 1, 1, 0, 0, 0, 0, -1, 1, 1, 1, 1, -1, -1, -1, -1,1));
        ases.sort((o1,o2) -> o1>o2?1:-1);
        System.out.println(ases);
    }

这一段代码因为没判断相等情况,会抛出 IllegalArgumentException: Comparison method violates its general contract! 报错。

但是为什么在下面这段代码中同样没判断相等情况,但是却并不会抛出这个错误呢?

public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("2020-04-01");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-01");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-03");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-01");
        list.add("2020-04-02");
        list.add("2020-04-03");
        list.add("2020-04-03");
        list.add("2020-04-03");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-02");
        list.add("2020-04-01");
        list.add("2020-04-03");
        list.add("2020-04-03");
        list.add("2020-04-03");
        list.add("2020-04-03");
        list.add("2020-04-01");
        list.add("2020-04-01");
        list.add("2020-04-01");
        list.add("2020-04-01");
        list.add("2020-04-03");
        System.out.println(list.size());
        System.out.println(getDataList(list));
    }


public static List<String> getDataList(List<String> list){
        list.sort((o1,o2) -> getDate(o1).before(getDate(o2))? -1:1);
        return list;
   }



private static Date getDate(String date){
        try {
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date result = dateFormat.parse(date);
            return result;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

https://blog.csdn.net/ghsau/article/details/42012365