Kotlin_ Advanced Features

Kotlin


Kotlin advanced features for the operation of the list on the basis of java

1. Filter

find to find the first
fiter to filter all
filterTo as a filter to mu, the first two sheets of filter list

fun main(args: Array<String>) {
    var list1 = listOf<String>("张三","里斯","张思")
    var list2 = listOf<String>("账务","张武")

    var list3 = list1.find { it
        it.startsWith("张")
    }
    println(list3)

    var list4 = list1.filter{it
        it.startsWith("张")
    }
    println(list4)

    var mu = mutableListOf<String>()
    list1.filterTo(mu,{it
        it.startsWith("张")
    })
    list2.filterTo(mu,{it
        it.startsWith("张")
    })
    println(mu)

    //index为偶数的
    val list5 = list1.filterIndexed{index:Int,s:String->
        index%2==0
    }
    println(list5)
}

The results
Zhang
[Zhang, Zhang Si]
[Joe Smith, Zhang Si, Zhang Wu]
[Joe Smith, Zhang Si]

2. Sort

According to ASCII sort
can also be sorted according to custom

fun main(args: Array<String>) {
    var list = listOf<String>("a","b","c")
    println(list.sorted())

    println(list.sortedDescending())

    var list1 = listOf(person1("林",11), person1("王",15), person1("陈",13))
    var list2 = list1.sortedBy { it.age }
    println(list2)
    var list3 = list1.sortedByDescending { it.age }
    println(list3)
}
data class person1(var name:String,var age:Int)

Results
[A, B, C]
[C, B, A]
[PERSON1 (name = Lin, age = 11), person1 ( name = Chen, age = 13), person1 ( name = Wang, Age = 15)]
[ person1 (name = Wang, age = 15), person1 ( name = Chen, age = 13), person1 ( name = Lin, age = 11)]

3. Packet

fun main(args: Array<String>) {
    var list = listOf<String>("王五","张三","张思","李四")
    var map = list.groupBy { it
        var fist = it.substring(0,1)
        when(fist){
            "张"->"张"
            "李"->"李"
            else->"其他"
        }
    }
    println(map)
}

Results
{= Other [Wang Wu] Zhang = [Zhang, Zhang Si] Li = [John Doe]}

4. Extreme Value

You can customize
you can also pick up the ASCII

fun main(args: Array<String>) {
    val list = listOf<String>("a","b","z")
    println(list.max())
    println(list.min())

    var list1 = listOf(person("林",11), person("王",15), person("陈",13))
    var list2 = list1.maxBy { it.age }
    var list3 = list1.sortedBy { it.age }
    println(list3)
    println(list2)
}
data class person(var name:String,var age:Int)

Results
z
a
[person (name = Hayashi, age = 11), person ( name = Chen, age = 13), person ( name = Wang, age = 15)]
person (name = Wang, age = 15)

5. deduplication

The first method is a set
second method is a distinct
third is taken of the same sex

fun main(args: Array<String>) {
    var list = listOf<String>("张三","张三","里斯","张思")
    var set = list.toSet()
    println(set)

    println(list.distinct())

    //取同性
    val list2 = list.distinctBy {
        it.substring(0,1)
    }
    println(list2)
}

The results
[Joe Smith, Rees, Zhang Si]
[seating, Rees, Zhang Si]
[seating, Rees]

Published 165 original articles · won praise 12 · views 10000 +

Guess you like

Origin blog.csdn.net/qq_43141726/article/details/104618332