Latest web development tutorials

Scala Conjunto (recopilación)

colecciones Scala colecciones Scala

Scala Set (colección) no se repite colección de objetos, todos los elementos son únicos.

colección Scala se divide en colecciones de variables e inmutables.

De forma predeterminada, Scala usando colecciones inmutables, si desea utilizar la variable establecida, es necesario hacer referencia ascala.collection.mutable.Set paquete.

El scala.collection.immutable.Set de referencia por defecto, conjunto inmutable de ejemplos son los siguientes:

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

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

Si es necesario utilizar una colección variable de necesidad de introducir 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: Aunque la variable e inmutable Conjunto Conjunto ha añadir o eliminar elementos, pero hay una diferencia muy grande.Una operación de ajustes inmutable, producirá una nueva serie, la serie original no ha cambiado, lo que es lo mismo que la lista. El funcionamiento del cambio de Set variable es que el propio Conjunto, similar a ListBuffer.


Conjunto de operaciones básicas

colección Scala tiene tres operaciones básicas:

  • head devuelve el primer elemento de la colección
  • tail devuelve una colección que contiene, además de los otros elementos del primer elemento
  • isEmpty devuelve verdadero si la colección está vacía

Cualquier operación de colecciones Scala se puede utilizar para expresar las tres operaciones básicas. Ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

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

juego de conexión

Usted puede utilizar el operador++ o Set.Método++ ()para conectar dos pares. Si hay elementos duplicados se eliminan los elementos duplicados. Ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

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

Encontrar los elementos máximo y mínimo de la colección

Puede utilizar el métodoSet.min para encontrar el elemento más pequeño de la colección, utilice Set.maxmanera de encontrar el elemento más grande de la colección. Ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

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

intersección

Se puede utilizar el método o métodosestablecidos. Set.intersecty para ver la intersección de los dos conjuntos de elementos. Ejemplos son los siguientes:

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

Aplicación del código anterior, la salida es:

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

método común Scala Conjunto

La siguiente tabla enumera el conjunto Scala métodos comúnmente utilizados:

No. Método y Descripción
1

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

Añadir un nuevo elemento a la colección, x, y crear una nueva colección, a menos que los elementos existentes

2

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

La eliminación de elementos de la colección, y crear una nueva colección

3

def contiene (elem: A): Boolean

Si el elemento está presente en la colección, se devuelve verdadero, de lo contrario devuelve false.

4

def y (que: Ajuste [A ]): Ajuste [A]

Devuelve la intersección de dos conjuntos

5

def & ~ (que: Ajuste [ A]): Ajuste [A]

Devuelve la diferencia de los dos conjuntos

6

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

Mediante la adición de elementos de entrada de la colección especificada para crear un nuevo conjunto de inmutable

7

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

La fusión de dos colecciones

8

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

Mediante la eliminación de los elementos de la colección especificada pasado para crear un nuevo conjunto de inmutable

9

def addString (b: StringBuilder): StringBuilder

Añadir todos los elementos de la colección para el búfer de cadena inmutable

10

addString def (b: StringBuilder, septiembre : String): StringBuilder

Añadir todos los elementos de una colección inmutable en un búfer de cadena, utilizando el delimitador especificado

11

aplicar def (elem: A)

La detección de si la colección contiene el elemento especificado

12

def contar (p: (A) => Boolean): Int

Calcular el número de elementos que cumplen los criterios especificados fijados

13

def copyToArray (xs: Array [A ], iniciar: Int, len: Int): Unidad

Copiar elemento de la colección inmutable a una matriz

14

def diff (que: Ajuste [A ]): Ajuste [A]

Diferencia establece la comparación de dos conjuntos

15

def caer (n: Int): Ajuste [A]]

La nueva colección antes de descartes que regresan n elementos

16

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

Volver descartar los últimos n elementos de la nueva colección

17

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

elemento de descarte de izquierda a derecha, hasta que la condición no se cumple p

18

def es igual (que: Cualquier): Boolean

es igual método se puede utilizar en cualquier secuencia. Para la comparación de la serie son iguales.

19

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

El análisis de conjunto inmutable existe el elemento de condiciones especificadas.

20

def del filtro (P: (A) => Boolean): Ajuste [A]

Salida cumple con todos los elementos de la colección inmutables criterios especificados.

21

def encontrar (p: (A) => Boolean): Opción [A]

Encontrar el primer elemento de la colección se encuentran inmutables los criterios especificados

22

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

Encuentra todos los elementos de una colección inmutable que cumple con los criterios especificados

23

foreach def (f: (A) => Unidad): Unidad

La función se aplica a todos los elementos de la colección inmutable

24

cabeza def: Un

Obtener el primer elemento de la colección inmutable

25

def init: Ajuste [A]

Devuelve todos los elementos, excepto el último

26

def intersectar (que: Ajuste [A ]): Ajuste [A]

Calcular la intersección de dos conjuntos

27

def estaVacia: Boolean

Determinar si la colección está vacía

28

def iterador: Iterator [A]

Crear un nuevo iterador para recorrer los elementos

29

def última: Un

Devuelve el último elemento

30

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

A través de un método dado volverá a calcular todos los elementos

31

def max: Un

Encontrar el elemento máximo

32

min def: Un

Encontrar el elemento más pequeño

33

def mkString: String

El conjunto de todos los elementos de la pantalla como una cadena

34

def mkString (SEP: String): Cadena

Separadores reunirá a todos los elementos que se muestran como una cadena

35

def producto: Una

Devuelve un conjunto inmutable de números en los elementos de la trama.

36

tamaño def: Int

Devuelve el número de elementos de la colección inmutable

37

def splitAt (n: Int): (Ajuste [A], ajuste [A])

La colección inmutable se divide en dos contenedores, el primero por los primeros n elementos, y el segundo por los elementos restantes

38

def subsetOf (que: Ajuste [A ]): Boolean

Si la colección contiene un subconjunto devuelve verdadero, falso en caso contrario

39

def suma: Un

Devuelve un conjunto inmutable de todos los elementos de la digital y

40

def cola: Ajuste [A]

Devuelve un conjunto inmutable de otros elementos además del primer elemento

41

def tome (n: Int): Ajuste [A]

Devuelve los n primeros elementos

42

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

n elementos Volver

43

def toArray: Array [A]

Se convertirán a una colección digital

44

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

búfer de reserva, contiene todos los elementos de una colección de inmutable

45

def toList: Listado [A]

Lista de vuelta, contiene todos los elementos de una colección de inmutable

46

def tomap [T, T]: Mapa [T, T]

Volver Mapa, contiene todos los elementos de una colección de inmutable

47

def toSeq: SEQ [A]

Volver Sec, contiene todos los elementos de una colección de inmutable

48

toString def (): String

Devuelve una cadena con objeto de representar

Más formas para referirse a la documentación de la API

colecciones Scala colecciones Scala