我有以下两个列表:
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
您可以从上下文菜单将Java文件转换为Kotlin,或者如果将Android代码插入kt文件,则Android Studio建议您转换Java代码。最终,您将得到如下内容:
[Bracadabra的答案很好用,但是如果您看一下lambda,您会发现它比较了应用于s1
和s2
的相同函数,这意味着可以使用sortBy
对其进行简化: