Задачи
- Написать функцию проверки пустой символ в строке.
Если // "" - true // null - true // hello - false
Решение1:
fun String?.isEmptyOrNull() : Boolean { return when(this) { "" -> true null -> true else -> false } }
Решение2:
fun String?.isEmptyOrNull() : Boolean = this?.isEmpty() ?: true
2. Как сделать из Списка Списков строк - простой список со строками?
val listOfList = listOf( listOf("abc", "kgb", "cia"), listOf("ibm", "kpmg") ) Решение: listOfList.flatten()
3. Работа с функциями
data class Emp( val name: String, val age : Int, val position: String ) fun main() { val employees = listOf( Emp("Max Petrov", 22, "programmer"), Emp("Ivan Shapovalov", 33, "analyst"), Emp("Semen Deznev", 55, "manager"), Emp("Oleg Petrov", 19, "intern"), Emp("Katerina Drogova", 31, "programmer"), Emp("Nikolay Spivakov", 23, "analyst"), Emp("Boris Moiseev", 48, "manager"), Emp("Petr Sveshnikov", 37, "programmer"), Emp("Maria Kasatonova", 33, "analyst"), Emp("Olga Filimonova", 27, "programmer") ) // самый молодой println("Самый молодой: ${employees.minByOrNull { it.age }?.name}") // количество программистов println("Количество программистов: ${employees.count { it.position == "programmer" }}") // распечатать все имена программистов println("Имена программистов: ${employees.filter { it.position == "programmer" }.map { it.name.substringBefore(' ') }}") // средний возраст println("Cредний возраст: ${employees.map { it.age }.average()}") // разделить на две группы - старше 40 и младше println("Старше 40 и младше: ${employees.partition { it.age > 40 }}") // сгруппировать по профессии и распечатать профессию и количество работников в ней println("Группирповка: ${employees.groupBy { it.position}.mapValues { it.value.count() } }}") // распечатать с самым часто встречающимся возрастом println("С самым встречающимся возрастом: ${employees.groupBy { it.age}.maxByOrNull { it.value.count() }}") }