Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

132
Vistas
Cómo crear un mapa de cadena para listar

Tengo datos JSON en el formato dado:

 dataset = [ { 'name': 'Sayantan', 'section': 'A', 'detail': 'complete' }, { 'name': 'Charu', 'section': 'B', 'detail': 'complete' }, { 'name': 'Sanhati', 'section': 'C', 'detail': 'inprogress' }, ]

Quiero convertirlo en un mapa de <String, List<>> y obtenerlo en el siguiente formato:

 {'complete': [{'detail': 'complete', 'name': 'Sayantan', 'section': 'A'}, {'detail': 'complete', 'name': 'Charu', 'section': 'B'}], 'inprogress': [{'detail': 'inprogress', 'name': 'Sanhati', 'section': 'C'}]}

No tengo mucha experiencia en Kotlin, he trabajado mayormente con este tipo de casos en Python y he logrado escribir lo siguiente:

 val mapOfInterest = mutableMapOf<String, List<DataResource>>() for (data in datasets) { val mapKey = data.detail if (!mapOfInterest.containsKey(mapKey)) { if (mapKey != null) { mapOfInterest[mapKey] = listOf(data) } else { mapOfInterest[mapKey] // I am stuck here } } }

No puedo agregar datos al valor clave del mapa usando add() , cualquier idea o pista sería útil.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hay una función stdlib para lo que necesita llamada groupBy :

 val mapOfInterest = dataset.groupBy { it.detail }
over 4 years ago · Santiago Trujillo Denunciar

0

En Kotlin, las colecciones no se pueden cambiar de forma predeterminada: https://kotlinlang.org/docs/collections-overview.html . Entonces List no tiene un método add() .

Podría usar mutableListOf() en su lugar, pero la forma "correcta" de hacerlo en Kotlin es, como ya señaló Joffrey, usar la función estándar groupBy() https://kotlinlang.org/api/latest/jvm/stdlib /kotlin.colecciones/grupo-por.html

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda