Kotlin 中的 ArrayList 排序

Ati*_*Asi 4 arrays sorting collections android kotlin

我有一个 ArrayList 的 ArrayList 我想要实现的是,按降序对它们进行排序(基于从最高到最低的列表大小)以首先获得最大的,然后再继续。

java我在使用Collections时做了同样的事情。它在那里工作得很好,但现在我无法在 Koltin 中实现这一点,我收到了错误。示例图片

考虑我有一个class Foo()

 private var allHistoryList: ArrayList<ArrayList<Foo>> =   arrayListOf()


     /**
                 * Sorting array of array list to get Biggest to smallest array List based of size
                 */

      Collections.sort(allHistoryList, object: Comparator<ArrayList>{
            override fun compare(var a1, var a2) :Int {
                return a2.size() - a1.size()
            }
                    
        }
 

 Collections.sort(allHistoryList, object: Comparator<ArrayList>{
                    override fun compare(var a1 : ArrayList<*>, var a2 :ArrayList<*>) :Int {
                        return a2.size() - a1.size()
                    }
    
                }
    
                )
                //end of sorting

                 /**
                 * Sorting array of array list to get Biggest to smallest array List based of size
                 */
    
 Collections.sort(allHistoryList, new Comparator<ArrayList>() {
                    public int compare(ArrayList a1, ArrayList a2) {
                        return a2.size() - a1.size(); // working fine in Java.
                    }
                });//end of sorting
Run Code Online (Sandbox Code Playgroud)

Gio*_*oli 13

在 Kotlin 中,只有一行:

allHistoryList.sortByDescending { list -> list.size }
Run Code Online (Sandbox Code Playgroud)

该方法sortByDescending使用列表的大小作为选择器对原始列表进行降序排序,以在元素之间进行比较。