내가 키가 날짜를 나타내고 값이 걷고있는 문자열은 자바지도, stringMap
을 가지고을 적용합니다. 이지도를 collection.mutable.HashMap[DateTime, Long]
으로 변환해야합니다. 즉,지도 유형을 변경하는 것 외에도 Strings에서 DateTimes로 변경해야합니다.변환 맵은 해시 맵 및 변환
import scala.collection.JavaConversions._
val df = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
val stringMap: java.util.HashMap[String, Long] = ...
val dateTimeMap = stringMap map { case (k, v) => (df.parseDateTime(k), v)}
val result = collection.mutable.HashMap[DateTime, Long](dateTimeMap.toArray:_*)
마지막 줄은 스칼라 해시 맵에 stringMap를 변환하는 암시 적 변환이 this post
주에서 온다 :
이
내가 현재 사용하고있는 솔루션입니다.질문은 이것입니다, 더 좋은 방법이 있나요? 나는 yield/for breakout을 가진 맵 메소드를 사용했지만, 그들은 collection.mutable.HashMap
대신 Map을 리턴했다. 편집 : 분명히 breakout이 작동한다. 나는 당신의 질문을 이해한다면이 일을해야하는 경우 /EDIT
는 바람직 임시 dateTimeMap
asscala 대신 암시 적 변환을 사용하는 경우를 제외하면 똑같은 작업을 수행하면 작동하지 않습니다. 불행하게도 현재 진행중인 프로젝트의 스타일 규칙은 명시 적 변환을 사용하지 않고 암시 적 변환을 사용하는 것입니다. 스타일 협약을 준수하면서이 작업을 수행 할 수있는 방법이 있습니까? –
암시 적 버전이 저에게 효과적입니다. 그냥'JavaConverters'를'JavaConversions'로 대체하고'.asScala'를 버리면됩니다. – dhg
아, 네 말이 맞아. 나는'map' 전에 점을 공백으로 대체하려고했습니다. 감사. –