associate
- 어떤 데이터를 Map으로 만들어 key,value로 묶어줄 수 있다.
- key값은 중복되지 않으므로 만약 중복된 key값이 들어오게 되면 마지막으로 들어온 값이 map에 추가된다.
fun main() {
val milks = listOf(
Milk("스누피","GS",1500),
Milk("서울우유","CU",2500),
Milk("바나나우유","GS",1800))
val byConvenience1 = milks.associate { it.let{ (name,convenience, price) -> convenience to name}}
val byName1 = milks.associate { it.let{ (name,convenience, price) -> name to price}}
val byConvenience2 = milks.associateBy(Milk::convenience)
val byName2 = milks.associateBy { it.name }
val byWith = milks.associateWith{it.convenience}
println(byConvenience1)
println(byName1)
println(byConvenience2)
println(byName2)
println(byWith)
}
data class Milk(val name : String, val convenience : String, val price : Int)
associate
- Pair의 형태로 key와 value를 만든다.
associateBy(class::propertie1,class::propertie2)
- 파라미터에 프로퍼티를 넣어 (key,value)로 만든다.
associateBy{ key로 만들 propertie}
- key 값을 기준으로 value값에는 배열의 객체가 들어간다.
associateWith{value로 만들 propertie}
- value를 기준으로 key에는 배열의 객체가 들어간다.
참고