首页 > 解决方案 > (Java -> Kotlin)如何转换这段代码?(流,过滤器)

问题描述

我有 Java 的问题 --> Kotlin 转换.. 我怎样才能转换这段代码?

String[] allLongestStrings(String[] inputArray) {

    int mL = 0 ; 

    for(int i =0; i < inputArray.length; i++){

        if(mL<inputArray[i].length())
            mL = inputArray[i].length();
    }

    final int longest = mL;

    return Stream.of(inputArray)
        .filter(s -> s.length()==longest)
        .toArray(String[]:: new);    
}

我特别想改变这部分。

return Stream.of(inputArray)
        .filter(s -> s.length()==longest)
        .toArray(String[]:: new); 

请帮忙。

标签: javakotlin

解决方案


我建议让它变得简单:

fun allLongestStrings(inputArray: Array<String>): Array<String> {
    val longest = inputArray.maxBy { it.length }?.length
    return inputArray.filter { it.length == longest }.toTypedArray()
}

推荐阅读