2016-06-17 10 views
5

Der Titel sagt alles, was ist die beste Vorgehensweise, um herauszufinden, ob die Sammlung Elemente anderer Sammlungen enthält?Wie überprüft man, ob die Sammlung irgendein Element aus einer anderen Sammlung in Scala enthält?

In Java würde ich es ausführen wie diese

CollectionUtils.containsAny(a, b) 

gemeinsame Apache Sammlung utils verwenden, wo Variablen a/b Sammlungen sind.

Wie implementiert dieses Verhalten in Scala? Oder gibt es eine Bibliothek wie CollectionUtils von oben?

Ich möchte nicht die Common-Apache-Bibliothek verwenden, weil ich Scala-Sammlung in Java-Sammlung konvertieren müsste.

+1

Gibt es einen Unterschied zwischen einer scala Sammlung und einer Java ein? –

+0

@RobertMoskal Ja - und in der Tat Scala hat zwei völlig getrennte Sammlungen Hierarchien: unveränderlich und veränderbar. – javadba

Antwort

13

Sie können eine Kombination von exists verwenden und contains:

val a = List(1,2,3,4,5,6,7) 
val b = List(11,22,33,44,55,6) 

a.exists(b.contains) // true 
7

Intersect

val a = Seq(1,2,3) ; val b = Seq(2,4,5) 
a.intersect(b) 
res0: Seq[Int] = List(2) 

// to include the test: 
a.intersect(b).nonEmpty // credit @Lukasz 
+0

Nicht sicher, warum es einen Downvote bekommen hat. Es ist die offensichtliche Antwort –

+1

Es könnte sauberer als 'a.intersect (b) .NonEmpty' aussehen. –

+0

Die offensichtliche Antwort ist die andere, @TheArchetypalPaul. Wie auch immer, ich habe nicht runtergestimmt, nur nicht gewählt. – pedrofurla

Verwandte Themen