将Java列表sort(..)lambda表达式转换为kotlin

问题描述 投票:0回答:2

我有以下两个列表:

 ArrayList<String> staticlist = new ArrayList<String>()
        staticlist.add("Dairy")
        staticlist.add("Food")
        staticlist.add("Juice")
        staticlist.add("Bakery")
        staticlist.add("Poultry")

ArrayList<String> mySortedItems= new ArrayList<String>()
       staticlist.add("Food")
        staticlist.add("Poultry")
        staticlist.add("Juice")
        staticlist.add("Bakery")

在Java中,根据staticlist对mysortedItems进行排序的方式如下:

mySortedItems.sort((s1,s2)-> Integer.compare(mySortedItems.indexOf(s1),mySortedItems.indexOf(s1)))

现在如何将其转换为Kotlin?

API级别应保持为17

kotlin
2个回答
0
投票

您可以从上下文菜单将Java文件转换为Kotlin,或者如果将Android代码插入kt文件,则Android Studio建议您转换Java代码。最终,您将得到如下内容:


0
投票

[Bracadabra的答案很好用,但是如果您看一下lambda,您会发现它比较了应用于s1s2的相同函数,这意味着可以使用sortBy对其进行简化:

© www.soinside.com 2019 - 2024. All rights reserved.