Scala Set (collezione)
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