Scala Conjunto (recopilación)
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