Я бы хотел лучший способ перебрать keyList, и если ключ начинается с ключа компаратора, чтобы получить эту строку компаратора и добавить ее на карту в качестве заголовка, как, например, MutableMap> ... список все ключевые элементы, которые соответствуют компаратору ..
keysList: List<String>
val comparators = listOf("error", "customer", "custom", "feature")
Пока я делаю это так
private fun addToMap(key: String, attributeMap: MutableMap<String, MutableList<String>>) {
val list: MutableList<String> = attributeMap[getHeader(key)] ?: mutableListOf()
list.add(key)
attributeMap[getHeader(key)] = list
}
private fun getHeader(key: String): String {
val compareMap = mapOf("error" to "Error Attributes", "customer" to "Customer Attributes",
"custom" to "Customer Attributes", "feature" to "Feature Attributes", "request.header" to "Request Header Attributes",
"request.parameter" to "Request Parameter Attributes", "request" to "Other Request Attributes")
val defaultKeys = listOf("error.expected", "error.class", "error.message", "host", "httpResponseCode", "transactionName", "transactionUiName") // contains
for ((k, v) in compareMap) {
return if (key.startsWith(k)) {
v
} else if (key in defaultKeys) {
"Error Attributes"
} else {
"Custom Attributes"
}
}
return "Custom Attributes"
}