Android 6.0 List.sort()方法的问题

    技术2023-10-23  103

    最近有个项目,发现以前有同事写的代码用的List.sort()方法做了冒泡排序,然后崩了。后来发现 API23不能这么用啊。要么自己写个冒泡排序,要么换个写法,记下来避坑啊。。

    错误示范:

    bookMarkList.sort(new Comparator<UrlInfoModel>() { @Override public int compare(UrlInfoModel o1, UrlInfoModel o2) { return o1.getOrderIndex() - o2.getOrderIndex(); } });

    正确示范:

    Collections.sort(bookMarkList, new Comparator<UrlInfoModel>() { @Override public int compare(UrlInfoModel o1, UrlInfoModel o2) { return o1.getOrderIndex() - o2.getOrderIndex(); } });

    或者你自己写个冒泡:

    private void BubbleSort(List<UrlInfoModel> bookMarkList) { for (int i = 0; i < bookMarkList.size() - 1; i++) { for (int j = 0; j < bookMarkList.size() - i - 1; j++) { //交换位置 if (bookMarkList.get(j).getOrderIndex() > bookMarkList.get(j + 1).getOrderIndex()) { UrlInfoModel temp = bookMarkList.get(j); bookMarkList.set(j, bookMarkList.get(j + 1)); bookMarkList.set(j + 1, temp); } } } }
    Processed: 0.013, SQL: 9