Ich habe den folgenden Anwendungsfall, in dem ich mehrere Male auf der gleichen Sammlung wiederhole, und jedes Mal finde ich ein anderes Element in dieser Sammlung.Bessere Möglichkeit, auf eine Sammlung zu iterieren und mehrere Werte anstelle von 1 zu finden
class Foo(policyToData: Map[String, MyClass]){
val milk: Option[MyClass] = policyToData.values.find(_.`type` == Milk)
val meat: Option[MyClass] = policyToData.values.find(_.`type` == Meat)
val bread: Option[MyClass] = policyToData.values.find(_.`type` == Bread)
val other: List[MyClass] = policyToData.values.filter(_.`type` == Other).toList
}
Gibt es einen besseren Weg, es zu tun? mit einer Iteration?
@somsnytt "für die erste Reichweite"? Wdym? – Dima
Ich bin mir nicht sicher, wie 'falten' hier die Leistung in irgendeiner Weise unterstützt. – Dima
@ som-snytt niemand kopiert die gesamte Sammlung, es sind nur Referenzen, die kopiert werden. Wenn Sie denken, dass _das_ eine große Sache ist, sollten Sie nicht Scala mit dem ganzen "unveränderlichen/Kopie-auf-schreiben" -Paradigma verwenden, um damit zu beginnen. Ich meine, was glaubst du, was dein 'm + (c.name -> c)' tut? – Dima