이 두 개가 있습니다. Map[String, String]
이고 업데이트 된 값으로 새 맵을 만들어야합니다. 두 번째 Map에 새로운 키 또는 null이 아닌 값 또는 첫 번째 Map보다 큰 값이있는 경우 업데이트가 수행됩니다. 예를 들어None의 가능성이있는 두 개의 맵 키와 scala의 null을 비교합니다.
:
업데이트 시나리오
FirstMap("key1" -> "123")
경우 다음SecondMap("key1" -> "456")
ResultMap("key1" -> "456")
- 다음과
FirstMap("key1" -> null)
SecondMap("key1" -> "value1")
ResultMap("key1" -> "value1")
- 경우
FirstMap()
및SecondMap("key1" -> "value1")
경우ResultMap("key1" -> "value1")
비 업데이트 시나리오
경우
FirstMap("key1" -> "value1")
다음SecondMap()
ResultMap("key1" -> "value1")
FirstMap("key1" -> "value1")
경우 다음SecondMap("key1" -> null)
ResultMap("key1" -> "value1")
경우 상태를 수용하는 방법에 대한 어떤 제안
val currentFieldValue = currentDetail.get(field).get val newFieldValue = newDetail.get(field).get currentFieldValue match { case null if newFieldValue != null => currentDetail ++ Map(s"$field" -> s"$newFieldValue") case _ if newFieldValue != null && newFieldValue.toInt > currentFieldValue.toInt => currentDetail ++ Map(s"$field" -> s"$newFieldValue") case _ => currentDetail }
즉 때 키 자체가 itsn't : 4,251,353,210 및
SecondMap("key1" -> "456")
다음ResultMap("key1" -> "789")
지금까지 나는 아래의 코드가?
'케이스 없음'이 작동하지 않습니까? – Samar