Kotlin으로 구현하다보면 foreach와 map은 실제로 같은 기능을 하는 것 같지만 깊게 이해하고 사용하면 상황에 따라 유용하여 사용할 수 있다. 이글에서는 두 문법에 관하여 정리해 보려고 한다.
◆foreach
이 문법은 단순히 모든 Collection 원소에 대하여 한번 순회하면서 처리하는 문법이다. 중간에 중단도 가능하고 결과 값을 만들어 내기도 하고 아닐 수도 있다. 즉 모든 처리가 가능 하다.
val list = listOf(
Data("John", "Ali"),
Data("Naidu", "Tan"),
Data("Evgenii", "Dmitry"))
list.foreach{
if(it.firstName=="Naidu"){
println("This is Naidu")
break
}
}
◆map
map은 모든 원소을 순회하면서 결과값을 반환한다. 즉 모든 원소를 순환하는 목적이 다른 무언가를 하기 위함이다. 원래 Collection이 아닌 다른 Collection으를 만든다. 이 떄문에 map을 보통 두 Collection를 transform 하기위해 사용한다.
val list = listOf(
Data("John", "Ali",30),
Data("Naidu", "Tan",32),
Data("Evgenii", "Dmitry",32))
val newList =list.map{ it.age +=1}
◆결론
단순히 모든 원소에 대하여 어떤 처리를 하거나 특정 조건에서 loop를 중단하고 결과 값이 필요 없으면 foreach를 선택, loop의 결과를 다른 Collection으로 반환 받고 싶으면 map을 선택하는 것이 좋다.
https://stackoverflow.com/questions/354909/is-there-a-difference-between-foreach-and-map
'Kotlin' 카테고리의 다른 글
[kotlin] Serialization을 이용하여 JSON를 다루어 보자 (0) | 2022.01.20 |
---|---|
[kotlin] Collection & Sequence (0) | 2021.11.23 |
[kotlin] 자주 사용하는 문법 정리 (0) | 2021.11.23 |
[Kotlin] apply, with, let, also, run 사용 (0) | 2021.11.09 |
Comment