Лучший способ найти ProcessVariable, а затем вложенный цикл для соответствующих критериев в kotlin - PullRequest
1 голос
/ 02 августа 2020
var process_var: List<ProcessVariable>?=null
val jackson = jacksonObjectMapper()
    val model: List<Process> = jackson.readValue(jsonString)
        for (obj: Process in model) {
            if (obj.processKey.equals(key)) {
                for (tskObj: Task in obj.task!!)
                    if (tskObj.taskCode.equals(code))
                        process_var= tskObj.processVariables
            }
        }


class Process {

    var processKey: String? = null
    var task: List<Task>? = null
}

class Task {

    var taskCode: String? = null
    var processVariables: List<ProcessVariable>? = null
}

class ProcessVariable {

    var name: String? = null
    var applicableValue: List<String>? = null
}

код и ключ указаны как входные. Json файл имеет структуру:

[{
    "processKey": "key",

    "task": [
      {
        "taskCode": "code",
        "processVariables": [
          {
            "name": "something",
            "applicableValue": ["something", "something"]
          },
          {
            "name": "something",
            "applicableValue": ["something", "something"]
          }]
       }]
  },
...]

Я думал об использовании хэш-карты для поиска в O (1), но его ошибка выдачи Тип массива, поэтому я использую список. Как уменьшить временную сложность поиска или какой-либо лучший способ поиска без l oop и сокращения kotlin

...