Latest web development tutorials

Scala Set (collezione)

collezioni Scala collezioni Scala

Scala Set (raccolta) non si ripeta collezione di oggetti, tutti gli elementi sono unici.

collezione Scala è diviso in collezioni variabili e immutabili.

Per impostazione predefinita, Scala utilizzando collezioni immutabili, se si desidera utilizzare la variabile, è necessario fare riferimento pacchettoscala.collection.mutable.Set.

Il scala.collection.immutable.Set di riferimento di default, insieme immutabile di esempi sono i seguenti:

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

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

Se è necessario utilizzare un insieme variabile di necessità di introdurre 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

Nota: Anche se Set Set variabile e immutabile è aggiungere o eliminare elementi, ma c'è una grande differenza.Un Set operazione immutabile, produrrà una nuova serie, la serie originale non è cambiata, che è la stessa come elenco. Il funzionamento del cambio Set variabile è che il set stesso, simile a ListBuffer.


Raccolta delle operazioni di base

collezione Scala ha tre operazioni di base:

  • head restituisce il primo elemento della collezione
  • tail restituisce un insieme che contiene in aggiunta agli altri elementi del primo elemento
  • isEmpty restituisce true se la raccolta è vuota

Qualsiasi operazione per le collezioni Scala può essere utilizzato per esprimere le tre operazioni di base. Esempi sono i seguenti:

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

L'attuazione del codice di cui sopra, l'output è:

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

set di collegamento

È possibile utilizzare l'operatore++ o Set.Metodo++ ()per collegare due set. Se ci sono elementi duplicati saranno rimuovere gli elementi duplicati. Esempi sono i seguenti:

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

L'attuazione del codice di cui sopra, l'output è:

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

Trova gli elementi massime e minime della collezione

È possibile utilizzare il metodoSet.min per trovare il più piccolo elemento della collezione, il senso di Set.maxper trovare l'elemento più grande della collezione. Esempi sono i seguenti:

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

L'attuazione del codice di cui sopra, l'output è:

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

intersezione

È possibile utilizzare il metodoSet. & Set.intersecto metodi per vedere l'intersezione dei due insiemi di elementi. Esempi sono i seguenti:

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

L'attuazione del codice di cui sopra, l'output è:

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

Scala Imposta metodo comune

La seguente tabella elenca il set Scala metodi comunemente usati:

No. Metodo e Descrizione
1

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

Aggiungere un nuovo elemento alla raccolta, x e creare una nuova collezione, a meno che gli elementi esistenti

2

DEF - (elem: A): Impostare [A]

Rimozione elementi della collezione, e creare una nuova collezione

3

DEF contiene (elem: A): booleano

Se l'elemento è presente nella collezione, restituisce vero, altrimenti restituisce false.

4

DEF & (che: Set [A ]): Impostare [A]

Restituisce l'intersezione di due insiemi

5

def & ~ (che: Set [ A]): Impostare [A]

Restituisce la differenza set di due set

6

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

Con l'aggiunta di elementi in entrata dell'insieme specificato per creare un nuovo set di immutabile

7

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

Unire due collezioni

8

DEF - (elem1: A, elem2 : A, elems: A *): Impostare [A]

Eliminando gli elementi dell'insieme specificato passato per creare un nuovo set di immutabile

9

def AddString (B: StringBuilder): StringBuilder

Aggiungere tutti gli elementi della collezione al buffer di stringa immutabile

10

def AddString (B: StringBuilder, settembre : String): StringBuilder

Aggiungere tutti gli elementi di una collezione immutabile in un buffer di stringa, utilizzando il delimitatore specificato

11

applicare DEF (elem: A)

Rilevare se la raccolta contiene l'elemento specificato

12

def contare (p: (A) => booleana): Int

Calcolare il numero di elementi che soddisfano i criteri specificati stabiliti

13

def copyToArray (xs: Array [A ], avviare: Int, len: Int): Unità

Copia elemento raccolta immutabile ad un array

14

def diff (che: Set [A ]): Impostare [A]

Differenza imposta confrontando due set

15

def cadere (n: Int): Impostare [A]]

La nuova collezione prima di scarti di ritorno n elementi

16

def dropRight (n: Int): Impostare [A]

Torna scartare gli ultimi n elementi della nuova collezione

17

def dropWhile (p: (A) => booleana): Impostare [A]

elemento di scarto da sinistra a destra, fino a quando la condizione non è soddisfatta p

18

DEF è uguale (che: Qualsiasi): booleano

uguale metodo può essere utilizzato in qualsiasi sequenza. Per il confronto della serie sono uguali.

19

def esiste (p: (A) => booleana): booleano

Analizzando set immutabile l'elemento condizioni specificato esiste.

20

def filtrare (p: (A) => booleana): Impostare [A]

Uscita soddisfa tutti i criteri specificati gli elementi di raccolta immutabili.

21

def trovare (p: (A) => booleana): Opzione [A]

Trovare il primo elemento della collezione si incontrano immutabile i criteri specificati

22

def forall (p: (A) => booleana): booleano

Trova tutti gli elementi di una collezione immutabile che soddisfa i criteri specificati

23

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

La funzione viene applicata a tutti gli elementi della collezione immutabile

24

testa DEF: A

Ottenere il primo elemento della collezione immutabile

25

def init: Impostare [A]

Restituisce tutti gli elementi, tranne l'ultimo

26

def intersecano (che: Set [A ]): Impostare [A]

Calcola l'intersezione di due insiemi

27

DEF isEmpty: booleano

Determinare se la raccolta è vuota

28

DEF iteratore: Iterator [A]

Creare un nuovo iteratore per iterare gli elementi

29

DEF ultima: A

Restituisce l'ultimo elemento

30

DEF mappa [B] (f: (A) => B): immutable.Set [B]

Attraverso un determinato metodo ricalcolerà tutti gli elementi

31

DEF max: A

Trova l'elemento massimo

32

min DEF: A

Trova l'elemento più piccolo

33

DEF mkString: String

L'insieme di tutti gli elementi del display sotto forma di stringa

34

def mkString (Set: String): String

Separatori riunirà tutti gli elementi visualizzati come una stringa

35

prodotto DEF: A

Restituisce un insieme immutabile di numeri nei elementi della trama.

36

dimensione DEF: Int

Restituisce il numero di elementi nella collezione immutabile

37

def splitAt (n: Int): (Set [A], impostare [A])

La collezione immutabile è diviso in due contenitori, il primo dai primi n elementi, e la seconda dagli elementi rimanenti

38

def subsetOf (che: Set [A ]): booleano

Se la raccolta contiene un sottoinsieme restituisce true, altrimenti false

39

somma DEF: A

Restituisce un insieme immutabile di tutti gli elementi del digitale e

40

DEF CODA: [A]

Restituisce un insieme immutabile di altri elementi in aggiunta al primo elemento

41

def prendere (n: Int): Impostare [A]

Restituisce i primi n elementi

42

def takeRight (n: Int): Impostare [A]

n elementi Indietro

43

DEF toArray: Array [A]

Verrà convertito in una collezione digitale

44

DEF toBuffer [B>: A] : Buffer [B]

buffer posteriore, contiene tutti gli elementi di una collezione di immutabile

45

DEF listaA: Lista [A]

Elenco indietro, contiene tutti gli elementi di una collezione di immutabile

46

DEF toMap [T, U]: mappa [T, U]

Indietro Mappa, contiene tutti gli elementi di una collezione di immutabile

47

DEF toSeq: Seq [A]

Indietro Seq, contiene tutti gli elementi di una collezione di immutabile

48

def toString (): String

Restituisce una stringa di oggetto per rappresentare

Altri modi per fare riferimento alla documentazione delle API

collezioni Scala collezioni Scala