หากฉันมีคอลเลกชันc
ประเภทT
และมีสถานที่ให้บริการp
บนT
(จากประเภทP
พูด) เป็นวิธีที่ดีที่สุดในการทำแผนที่โดยแยกแตกคีย์คืออะไร?
val c: Collection[T]
val m: Map[P, T]
วิธีหนึ่งคือสิ่งต่อไปนี้:
m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }
แต่ตอนนี้ฉันต้องการแผนที่ที่ไม่แน่นอน มีวิธีที่ดีกว่าในการทำเช่นนี้เพื่อให้เป็นหนึ่งในสายและฉันจบลงด้วยแผนที่ที่ไม่เปลี่ยนรูป ? (เห็นได้ชัดว่าฉันสามารถเปลี่ยนสิ่งต่าง ๆ ข้างต้นให้กลายเป็นยูทิลิตี้ห้องสมุดอย่างที่ฉันต้องการใน Java แต่ฉันสงสัยว่าใน Scala ไม่มีความจำเป็น)
Traversable[K].mapTo( K => V)
และTraversable[V].mapBy( V => K)
ดีกว่า!