Latest web development tutorials

Scala Zestaw (kolekcji)

zbiory Scala zbiory Scala

Scala Zestaw (kolekcji) nie powtórzy zbiór przedmiotów, wszystkie elementy są unikatowe.

Kolekcja Scala jest podzielony na zbiorach zmiennych i niezmiennych.

Domyślnie Scala używając zbiory niezmienne, jeśli chcesz użyć zmiennej zestaw, trzeba odwołać pakietscala.collection.mutable.Set.

Scala.collection.immutable.Set domyślny odniesienia, niezmienna zestaw przykładów są następujące:

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

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

Jeśli trzeba użyć zbiór zmiennych trzeba wprowadzić scala.collection.mutable.Set:

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

Uwaga: Mimo, że zmienne i niezmienne Set Zestaw został dodawać lub usuwać elementy, ale jest to bardzo duża różnica.Stala praca Set, będzie produkować nowy zestaw, oryginalny zestaw nie uległa zmianie, która jest taka sama jak listy. Działanie zmiennej zmiany zestawu jest to, że samo urządzenie, podobnie ListBuffer.


Zbiór podstawowych operacji

Kolekcja Scala ma trzy podstawowe operacje:

  • head zwraca pierwszy element kolekcji
  • tail zwraca zbiór, który zawiera oprócz innych elementów, pierwszego elementu
  • isEmpty zwraca true, jeśli zbiór jest pusty

Wszelkie operacje na zbiorach Scala mogą być używane do wyrażenia trzy podstawowe operacje. Przykłady są następujące:

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 )
   }
}

Realizacja powyższego kodu, wyjście jest:

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

zestaw przyłączeniowy

Można użyć operatora++ lub Ustaw. ++ ()aby podłączyć dwa zestawy. Jeśli istnieją zduplikowane elementy usunie zduplikowane elementy. Przykłady są następujące:

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 )
   }
}

Realizacja powyższego kodu, wyjście jest:

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

Znajdź maksymalne i minimalne elementy w kolekcji

Można użyć metodySet.min znaleźć najmniejszy element w kolekcji, należy Set.maxsposób na znalezienie największego elementu w kolekcji. Przykłady są następujące:

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 )
   }
}

Realizacja powyższego kodu, wyjście jest:

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

skrzyżowanie

Można użyć metody lub metodUstaw. & Set.intersectzobaczyć przecięcie dwóch zestawów elementów. Przykłady są następujące:

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) )
   }
}

Realizacja powyższego kodu, wyjście jest:

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

Scala Zestaw powszechna metoda

Poniższa tabela zawiera zestaw Scala powszechnie stosowane metody:

Nie. Sposób i opis
1

def + (elem: A): Ustaw [A]

Dodaj nowy element do kolekcji, X i utworzyć nową kolekcję, chyba istniejących elementów

2

def - (elem: A): Ustaw [A]

Usuwanie elementów kolekcji i utworzyć nową kolekcję

3

def (elem zawiera: A): Boolean

Jeśli element jest obecny w kolekcji, to zwraca wartość true, w przeciwnym razie zwraca false.

4

def & (tj: Set [A ]): Ustaw [A]

Zwraca przecięcie dwóch zestawów

5

def & ~ (tj: Set [ A]): Ustaw [A]

Zwraca ustawioną różnicę dwóch zestawów

6

def + (elem1: A, element2 : A, elems: A *): Ustaw [A]

Przez dodanie nadchodzące elementy określonego zbioru w celu utworzenia nowego zestawu niezmienne

7

def ++ (elems: A): Ustaw [A]

Scalanie dwóch zbiorów

8

def - (elem1: A, element2 : A, elems: A *): Ustaw [A]

Przez usunięcie elementów upłynięciu określonego zbioru w celu utworzenia nowego zestawu niezmienne

9

def addstring (b: StringBuilder): StringBuilder

Dodaj wszystkie elementy kolekcji do bufora strun niezmiennej

10

addstring def (b: StringBuilder, wrzesień : String): StringBuilder

Dodaj wszystkie elementy niezmiennej kolekcji do bufora strun przy użyciu odpowiedniego separatora

11

def apply (elem: A)

Wykrywanie, czy kolekcja zawiera określony element

12

def count (P: (A) => Boolean): int

Obliczyć liczbę elementów, które spełnia określone kryteria

13

def copyToArray (xs: Array [A ], start: Int, len: int): Unit

Kopiowanie niezmienny element pobierający do tablicy

14

def diff (tj: Set [A ]): Ustaw [A]

Różnica ustawia porównanie dwóch zestawów

15

def upuść (n: int): Ustaw [A]]

Nowa kolekcja przed powrotem odrzutów n elementów

16

def dropRight (n: int): Ustaw [A]

Powrót odrzucić ostatnie n elementów nowej kolekcji

17

def dropWhile (P: (A) => Boolean): Ustaw [A]

Odrzuć elementem lewej do prawej, dopóki warunek nie jest spełniony p

18

def równa (czyli: dowolny): Boolean

wynosi metoda może być stosowana w dowolnej kolejności. Dla porównania serie są równe.

19

def istnieje (P: (A) => Boolean): Boolean

Analizując niezmienny zestaw określonych warunków istnieje element.

20

def filtrować (P: (A) => Boolean): Set [A]

Wyjście spełnia wszystkie określone kryteria niezmienne elementy kolekcji.

21

def find (P: (A) => Boolean): Opcja [A]

Znalezienie pierwszego elementu w kolekcji niezmiennej spełniać określone kryteria

22

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

Znajdź wszystkie elementy niezmiennej kolekcji, która spełnia określone kryteria

23

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

Funkcja ta jest stosowana do wszystkich elementów kolekcji niezmiennej

24

Głowica def: a

Uzyskaj pierwszy element kolekcji niezmiennej

25

def startowych: Ustaw [A]

Zwraca wszystkie elementy, z wyjątkiem ostatniego

26

def przecinają (tj: Set [A ]): Ustaw [A]

Oblicza przecięcie dwóch zestawów

27

def isEmpty: Boolean

Określić, czy kolekcja jest pusta

28

def iterator: Iterator [A]

Utwórz nowy iterator iteracyjne elementów

29

def ostatnia: a

Zwraca ostatni element

30

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

Za pomocą danej metody obliczy ponownie wszystkie elementy

31

def max: a

Znajdź maksymalną elementu

32

def min: a

Znajdź najmniejszy element

33

def mkString: String

Zbiór wszystkich elementów wyświetlacza jako ciąg

34

def mkString (wrzesień: String): String

Separatory zgromadzi wszystkie elementy wyświetlane jako ciąg

35

Produkt def: a

Zwraca niezmienny zbiór liczb w elementach fabuły.

36

Wielkość def: Int

Zwraca liczbę elementów w kolekcji niezmiennej

37

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

Zbiór niezmienna jest podzielona na dwie pojemnikach, najpierw przez pierwsze elementy N, a drugi przez pozostałymi elementami

38

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

Jeśli kolekcja zawiera podzbiór zwraca true, false w przeciwnym wypadku

39

Suma def: a

Zwraca niezmienny zbiór wszystkich elementów cyfrowych oraz

40

def OGON: [A]

Zwraca niezmienny zestawu innych elementów, oprócz pierwszego elementu

41

def podjąć (n: int): Ustaw [A]

Zwraca n pierwszych elementów

42

def takeRight (n: int): Ustaw [A]

n elementów Powrót

43

def toArray: Array [A]

Zostanie przekonwertowany do cyfrowej kolekcji

44

def toBuffer [b>: A] : Bufor [B]

Bufor Back, zawiera wszystkie elementy kolekcji niezmienne

45

def ToList: Lista [A]

Powrót Lista zawiera wszystkie elementy kolekcji niezmienne

46

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

Powrót Mapa, zawiera wszystkie elementy kolekcji niezmienne

47

def toSeq: seq [A]

Powrót sekwencji, zawiera wszystkie elementy kolekcji niezmienne

48

def toString (): String

Zwraca ciąg do obiektu do reprezentowania

Więcej sposobów, aby odnieść się do dokumentacji API

zbiory Scala zbiory Scala