¿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.

  • ActivityTestRule.getActivity devuelve nulo en el método Before
  • ¿Por qué Kotlin usa la palabra "val" para representar constante?
  • Los cambios de Android Studio 3.0 Kotlin no se reflejan en la compilation
  • Corda: error = org.hibernate.InstantiationException: ningún constructor pnetworkingeterminado para la entidad
  • Clases de almacenamiento en lenguaje de progtwigción Kotlin
  • ¿Por qué Intellij Idea Console pausa para la input del usuario?
  • Llamar al método de una class como arg por defecto en el constructor
  • ¿Cómo se convierte la encoding win1251 a UTF8 dentro de Kotlin?