Latest web development tutorials

Scala-Set (Sammlung)

Scala Sammlungen Scala Sammlungen

Scala-Set (Sammlung) ist eine Sammlung von Objekten nicht wiederholt, sind alle Elemente einzigartig.

Scala Kollektion wird in variable und unveränderlich Sammlungen aufgeteilt.

Standardmäßig Scala unveränderlich Sammlungen verwenden, wenn Sie die Variable Satz verwenden wollen, müssen Siescala.collection.mutable.Set Paket zu verweisen.

Der Standardreferenz scala.collection.immutable.Set, unveränderliche Reihe von Beispielen sind wie folgt:

val set = Set(1,2,3)
println(set.getClass.getName) // 

println(set.exists(_ % 2 == 0)) //true
println(set.drop(1)) //Set(2,3)

Wenn Sie benötigen eine Variable Sammlung verwenden scala.collection.mutable.Set vorstellen:

import scala.collection.mutable.Set // 可以在任何地方引入 可变集合

val mutableSet = Set(1,2,3)
println(mutableSet.getClass.getName) // scala.collection.mutable.HashSet

mutableSet.add(4)
mutableSet.remove(1)
mutableSet += 5
mutableSet -= 2

println(mutableSet) // Set(5, 3, 4)

val another = mutableSet.toSet
println(another.getClass.getName) // scala.collection.immutable.Set

Hinweis: Obwohl variable und unveränderlich Set Set hat Elemente hinzufügen oder löschen, aber es gibt einen sehr großen Unterschied.Eine unveränderliche Set Operation wird eine neue Reihe produzieren, hat sich die ursprüngliche Menge nicht verändert, was die gleiche wie Liste ist. Der Betrieb des variablen Set Änderung ist, dass das Set selbst, ähnlich wie ListBuffer.


Sammlung von Grundoperationen

Scala Sammlung hat drei grundlegende Operationen:

  • head liefert das erste Element der Kollektion
  • tail gibt eine Auflistung, die zusätzlich zu den anderen Elementen des ersten Elements enthält
  • isEmpty gibt true zurück , wenn die Sammlung leer ist

Jede Operation für Scala Sammlungen können verwendet werden, um die drei grundlegenden Operationen zum Ausdruck bringen. Beispiele sind wie folgt:

object Test {
   def main(args: Array[String]) {
      val site = Set("w3big", "Google", "Baidu")
      val nums: Set[Int] = Set()

      println( "第一网站是 : " + site.head )
      println( "最后一个网站是 : " + site.tail )
      println( "查看列表 site 是否为空 : " + site.isEmpty )
      println( "查看 nums 是否为空 : " + nums.isEmpty )
   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ vim Test.scala 
$ scala Test.scala 
第一网站是 : w3big
最后一个网站是 : Set(Google, Baidu)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true

Anschluss-Set

Sie können die Operator++ oder Set verwenden. ++ ()Methode zwei Sätze zu verbinden. Wenn es werden doppelte Elemente doppelte Elemente entfernen. Beispiele sind wie folgt:

object Test {
   def main(args: Array[String]) {
      val site1 = Set("w3big", "Google", "Baidu")
      val site2 = Set("Faceboook", "Taobao")

      // ++ 作为运算符使用
      var site = site1 ++ site2
      println( "site1 ++ site2 : " + site )

      //  ++ 作为方法使用
      site = site1.++(site2)
      println( "site1.++(site2) : " + site )
   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ vim Test.scala 
$ scala Test.scala 
site1 ++ site2 : Set(Faceboook, Taobao, Google, Baidu, w3big)
site1.++(site2) : Set(Faceboook, Taobao, Google, Baidu, w3big)

Finden Sie die maximalen und minimalen Elemente in der Sammlung

Sie könnenSet.min Methode verwenden , das kleinste Element in der Sammlung zu finden, verwenden Sie Set.maxWeise das größte Element in der Sammlung zu finden. Beispiele sind wie folgt:

object Test {
   def main(args: Array[String]) {
      val num = Set(5,6,9,20,30,45)

      // 查找集合中最大与最小元素
      println( "Set(5,6,9,20,30,45) 集合中的最小元素是 : " + num.min )
      println( "Set(5,6,9,20,30,45) 集合中的最大元素是 : " + num.max )
   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ vim Test.scala 
$ scala Test.scala 
Set(5,6,9,20,30,45) 集合中的最小元素是 : 5
Set(5,6,9,20,30,45) 集合中的最大元素是 : 45

Kreuzung

Sie können dieSet. & Set.intersectVerfahren oder Methoden verwenden , um die Kreuzung der beiden Gruppen von Elementen zu sehen. Beispiele sind wie folgt:

object Test {
   def main(args: Array[String]) {
      val num1 = Set(5,6,9,20,30,45)
      val num2 = Set(50,60,9,20,35,55)

      // 交集
      println( "num1.&(num2) : " + num1.&(num2) )
      println( "num1.intersect(num2) : " + num1.intersect(num2) )
   }
}

Die Umsetzung des obigen Codes ist die Ausgabe:

$ vim Test.scala 
$ scala Test.scala 
num1.&(num2) : Set(20, 9)
num1.intersect(num2) : Set(20, 9)

Scala Set gängige Methode

Die folgende Tabelle listet die Scala häufigsten verwendeten Methoden:

Nein. Verfahren und Beschreibung
1

def + (Elem: A): Stellen Sie [A]

Fügen Sie ein neues Element in die Erhebung, x und eine neue Sammlung erstellen, es sei denn, die bestehenden Elemente

2

def - (Elem: A): Stellen Sie [A]

Entfernen von Elementen aus der Sammlung, und erstellen Sie eine neue Kollektion

3

def enthält (Elem: A): Boolean

Wenn das Element in der Sammlung ist, gibt es wahr ist, andernfalls false.

4

def & (das: Set [A ]): Stellen Sie [A]

Gibt den Schnittpunkt von zwei Sätzen

5

def & ~ (das: Set [ A]): Stellen Sie [A]

Gibt die eingestellte Differenz von zwei Sätzen

6

def + (elem1: A, elem2 : A, elems: A *): Stellen Sie [A]

Durch die Zugabe von eingehenden Elemente der angegebenen Sammlung einen neuen Satz von unveränderlichen zu erstellen

7

def ++ (elems: A): Stellen Sie [A]

Zusammenführen von zwei Sammlungen

8

def - (elem1: A, elem2 : A, elems: A *): Stellen Sie [A]

Durch das Entfernen geleitet, um die Elemente der angegebenen Sammlung einen neuen Satz von unveränderlichen zu erstellen

9

def addString (b: String): String

Fügen Sie alle Elemente der Kollektion mit dem unveränderlichen String-Puffer

10

def addString (b: Stringbuilder, sep : String): String

Fügen Sie alle Elemente einer unveränderlichen Sammlung in einen String-Puffer, dem angegebenen Trennzeichen verwenden

11

def gelten (Elem: A)

Nachweis, ob die Sammlung das angegebene Element enthält

12

zählen def (p: (A) => Boolean): Int

Berechnen Sie die Anzahl der Elemente, die die angegebenen Kriterien erfüllen gesetzt

13

def copyToArray (xs: Array [A ], Beginn: Int, len: Int): Einheit

Kopieren Sie unveränderliche Sammelelement in ein Array

14

def diff (das: Set [A ]): Stellen Sie [A]

Differenz setzt zwei Sätze zu vergleichen

15

Drop - def (n: int):Stellen Sie [A]]

Die neue Kollektion vor der Rückkehr verwirft n Elemente

16

def dropRight (n: int): Stellen Sie [A]

Zurück verwerfen die letzten n Elemente der neuen Kollektion

17

def dropWhile (p: (A) => Boolean): Stellen Sie [A]

Verwerfen Element links nach rechts, bis die Bedingung nicht erfüllt p

18

def entspricht (also: Any): Boolean

gleich Methode kann in beliebiger Reihenfolge verwendet werden. Für die Reihe zu vergleichen sind gleich.

19

def existiert (p: (A) => Boolean): Boolean

Analyse unveränderlichen Satz der Bedingungen angegebene Element existiert.

20

Filter def (p: (A) => Boolean): Stellen Sie [A]

Output erfüllt alle festgelegten Kriterien unveränderlich Kollektion Elemente.

21

finden def (p: (A) => Boolean): Option [A]

Finden Sie das erste Element in der Sammlung unveränderlich treffen die angegebenen Kriterien

22

def forall (p: (A) => Boolean): Boolean

Finden Sie alle Elemente einer unveränderlichen Sammlung, die die angegebenen Kriterien erfüllt

23

def foreach (f: (A) => Unit): Einheit

Die Funktion wird auf alle Elemente der unveränderlichen Sammlung angewendet

24

def Kopf: A

Holen Sie sich das erste Element der Sammlung unveränderlich

25

def init: Stellen Sie [A]

Gibt alle Elemente, mit Ausnahme des letzten

26

schneiden def (dh: Set [A ]): Stellen Sie [A]

Berechnen Sie den Schnittpunkt von zwei Sätzen

27

def isEmpty: Boolean

Bestimmen Sie, ob die Sammlung leer ist

28

def Iterator: Iterator [A]

Erstellen Sie einen neuen Iterator um die Elemente zu iterieren

29

def letzte: A

Gibt das letzte Element

30

map def [B] (f: (A) => B): immutable.Set [B]

Durch eine bestimmte Methode wird neu berechnet werden alle Elemente

31

def max: A

Finden Sie die maximale Element

32

def min: A

Finden Sie das kleinste Element

33

def mkString: String

Die Menge aller Elemente des Displays als String

34

def mkString (September: String): String

Separatoren werden alle Elemente zusammenbringen, als String angezeigt

35

def Produkt:

Gibt eine unveränderliche Menge von Zahlen in den Handlungselemente.

36

def Größe: Int

Gibt die Anzahl der Elemente in der Sammlung unveränderlichen

37

def splitAt (n: int): (Set [A], Set [A])

Die unveränderliche Sammlung ist in zwei Behälter aufgeteilt, wobei der erste durch die ersten n Elemente, und die zweite von den übrigen Elemente

38

def subsetOf (das: Set [A ]): Boolean

Wenn die Sammlung eine Teilmenge enthält liefert true, sonst false

39

def Summe: A

Gibt eine unveränderliche Menge aller Elemente des digitalen und

40

def Rute: [A]

Gibt eine unveränderliche Menge anderer Elemente zusätzlich zu dem ersten Element

41

nehmen def (n: int): Stellen Sie [A]

Gibt die ersten n Elemente

42

def takeRight (n: int): Stellen Sie [A]

n Elemente Zurück

43

def toArray: Array [A]

Wird an eine digitale Sammlung umgewandelt werden

44

def toBuffer [B>: A] : Puffer [B]

Zurück Puffer, enthält alle Elemente aus einer Sammlung von unveränderlichen

45

def ToList: Liste [A]

Zurück Liste enthält alle Elemente aus einer Sammlung von unveränderlichen

46

def toMap [T, U]: Map [T, U]

Zurück Karte, enthält alle Elemente aus einer Sammlung von unveränderlichen

47

def toSeq: Seq [A]

Zurück Seq, enthält alle Elemente aus einer Sammlung von unveränderlichen

48

def toString (): String

Gibt einen String-Objekt zu repräsentieren

Weitere Möglichkeiten , um zu verweisen der API - Dokumentation

Scala Sammlungen Scala Sammlungen