¿Forma idiomática de transformar el map en kotlin?

En Scala, es solo la function de map . Por ejemplo, si hashMap es un hashMap de cadenas, puede hacer lo siguiente:

 val result : HashMap[String,String] = hashMap.map(case(k,v) => (k -> v.toUpperCase)) 

En Kotlin, sin embargo, el map convierte el map en una list. ¿Hay una manera idiomática de hacer lo mismo en Kotlin?

No creo que la opinión de una persona cuente como idiomática, pero probablemente usaría

 // transform keys only (use same values) hashMap.mapKeys { it.key.toUpperCase() } // transform values only (use same key) - what you're after! hashMap.mapValues { it.value.toUpperCase() } // transform keys + values hashMap.entries.associate { it.key.toUpperCase() to it.value.toUpperCase() } 

Puede usar la function stdlib mapValues que otros han sugerido:

 hashMap.mapValues { it.value.toUpperCase() } 

Creo que esta es la forma más idiomática.

  • Es "org.jetbrains.anko: anko-commons: $ anko_version" mal?
  • Copie los documentos de KDoc de un método a otro
  • ¿Cómo verificar si Mono está vacío?
  • La habilitación de la security del método global Spring Security interrumpe la dependency injection (con Kotlin)
  • Android: no se puede actualizar Listview usando CustomAdapter
  • arguments pnetworkingeterminados de la function kotlin de java
  • Parse 2D Array en Kotlin
  • Cómo usar Kotlin coroutines await () en el hilo principal
  • ¿Por qué se eliminó el bucle indexado en Kotlin?
  • RxJava usando Kotlin - cómo sincronizar 2 methods asíncronos, refactorizar desde Java
  • Crea una aplicación de Android escrita en Kotlin usando el sistema de compilation Buck