Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

131
Visualizações
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 Respostas
Responde à pergunta

0

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

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

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda