Scala mapa (mapa)
Mapa (mapa) es una especie de pares de valores clave iterativos estructura (clave / valor).
Todos los valores se pueden recuperar mediante una clave.
Localizar en un mapa la clave es única.
Mapa también se llama una tabla hash (tablas hash).
Mapa Hay dos tipos de variables y no se pueden cambiar, salvo que el objeto variable puede modificarlo sin objetos mutables no puede.
De forma predeterminada, Scala Mapa inmutable. Si es necesario utilizar una colección variable, se necesita introducir explícitamente la clasescala.collection.mutable.Map importación
En Scala puede utilizar variables e inmutable mapa, el uso directo Mapa inmutables, mutable uso mutable.Map. El siguiente ejemplo demuestra la aplicación de Mapa inmutable:
// 空哈希表,键为字符串,值为整型 var A:Map[Char,Int] = Map() // Map 键值对演示 val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
Cuando se define un mapa, es necesario definir el tipo de pares de valores clave. Si es necesario agregar pares de valores clave, puede utilizar el signo +, de la siguiente manera:
A += ('I' -> 1) A += ('J' -> 5) A += ('K' -> 10) A += ('L' -> 100)
Operaciones básicas Mapa
Scala Mapa Hay tres operaciones básicas:
camino | descripción |
---|---|
llaves | Volver Mapa todas las claves (clave) |
valores | Mapa devuelve todos los valores (valor) |
estaVacia | En el mapa se retornos de vacío verdadero |
Ejemplos
El siguiente ejemplo demuestra la aplicación de los tres métodos básicos anteriores:
object Test { def main(args: Array[String]) { val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val nums: Map[Int, Int] = Map() println( "colors 中的键为 : " + colors.keys ) println( "colors 中的值为 : " + colors.values ) println( "检测 colors 是否为空 : " + colors.isEmpty ) println( "检测 nums 是否为空 : " + nums.isEmpty ) } }
Aplicación del código anterior, la salida es:
$ scalac Test.scala $ scala Test colors 中的键为 : Set(red, azure, peru) colors 中的值为 : MapLike(#FF0000, #F0FFFF, #CD853F) 检测 colors 是否为空 : false 检测 nums 是否为空 : true
fusión mapa
Usted puede utilizar el operador++ o mapa. ++ ()Método para conectar dos Mapa, elimina clave duplicada cuando Mapa fusión. Los dos ejemplos siguientes demuestran el mapa combinado:
object Test { def main(args: Array[String]) { val colors1 = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val colors2 = Map("blue" -> "#0033FF", "yellow" -> "#FFFF00", "red" -> "#FF0000") // ++ 作为运算符 var colors = colors1 ++ colors2 println( "colors1 ++ colors2 : " + colors ) // ++ 作为方法 colors = colors1.++(colors2) println( "colors1.++(colors2)) : " + colors ) } }
Aplicación del código anterior, la salida es:
$ scalac Test.scala $ scala Test colors1 ++ colors2 : Map(blue -> #0033FF, azure -> #F0FFFF, peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000) colors1.++(colors2)) : Map(blue -> #0033FF, azure -> #F0FFFF, peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000)
Mapa de claves y valores de salida
El siguiente bucle foreach través de la salida Mapa de claves y valores:
object Test { def main(args: Array[String]) { val sites = Map("w3big" -> "http://www.w3big.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") sites.keys.foreach{ i => print( "Key = " + i ) println(" Value = " + sites(i) )} } }
Aplicación del código anterior, la salida es:
$ scalac Test.scala $ scala Test Key = w3big Value = http://www.w3big.com Key = baidu Value = http://www.baidu.com Key = taobao Value = http://www.taobao.com
Compruebe si existe la clave especificada en el mapa
Puede utilizar el métodoMap.contains para ver si la presencia de la clave del mapa especificado.Ejemplos son los siguientes:
object Test { def main(args: Array[String]) { val sites = Map("w3big" -> "http://www.w3big.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") if( sites.contains( "w3big" )){ println("w3big 键存在,对应的值为 :" + sites("w3big")) }else{ println("w3big 键不存在") } if( sites.contains( "baidu" )){ println("baidu 键存在,对应的值为 :" + sites("baidu")) }else{ println("baidu 键不存在") } if( sites.contains( "google" )){ println("google 键存在,对应的值为 :" + sites("google")) }else{ println("google 键不存在") } } }
Aplicación del código anterior, la salida es:
$ scalac Test.scala $ scala Test w3big 键存在,对应的值为 :http://www.w3big.com baidu 键存在,对应的值为 :http://www.baidu.com google 键不存在
Método Scala Mapa
La siguiente tabla muestra los métodos utilizados comúnmente Scala Mapa:
No. | Método y Descripción |
---|---|
1 | def ++ (xs: Mapa [( A, B)]): Mapa [A, B] Devuelve un nuevo mapa, mapa de nueva composición xs |
2 | DEF - (elem1: A, elem2 : A, elems: A *): Mapa [A, B] Devuelve un nuevo mapa, retire la llave de elem1, elem2 u otros elems. |
3 | DEF - (xs: GTO [A ]): Mapa [A, B] Devuelve un nuevo mapa, eliminar xs objeto tecla correspondiente |
4 | def get (clave: A): Opción [B] Devuelve el valor de la clave especificada |
5 | def iterador: Iterator [(A, B)] Crear un nuevo iterador, y envía el par clave / valor |
6 | def addString (b: StringBuilder): StringBuilder El mapa de todos los elementos conectados a la StringBuilder, se pueden añadir a un separador |
7 | addString def (b: StringBuilder, septiembre : String): StringBuilder El mapa de todos los elementos conectados a la StringBuilder, se pueden añadir a un separador |
8 | def aplicar (clave: A): B Devuelve el valor de la clave especificada, si no hay un retorno al Mapa método por defecto |
9 | def clear (): Unidad Borrar mapa |
10 | clon def (): Mapa [A , B] De una a otra de mapas Mapa |
11 | def contiene (clave: A): Boolean Si hay un mapa de teclado especificado, devuelve verdadero, de lo contrario devuelve false. |
12 | def copyToArray (xs: Array [( A, B)]): Unidad Juego de copias de una matriz |
13 | def contar (p: ((A , B)) => Boolean): Int Calcular el número de elementos que cumplen los criterios especificados fijados |
14 | def predeterminado (tecla: A): B El valor por defecto se define vuelve Mapa cuando la llave no está presente. |
15 | def caer (n: Int): Mapa [A, B] La nueva colección antes de descartes que regresan n elementos |
16 | def dropRight (n: Int): Mapa [A, B] Volver descartar los últimos n elementos de la nueva colección |
17 | def dropWhile (p: ((A , B)) => Boolean): Mapa [A, B] elemento de descarte de izquierda a derecha, hasta que la condición no se cumple p |
18 | def vacío: Mapa [A, B ] Devolver el mismo tipo de mapa vacío |
19 | def es igual (que: Cualquier): Boolean Si los dos son iguales mapa (clave / valor son iguales), devuelve verdadero, falso en caso contrario |
20 | def existe (p: ((A , B)) => Boolean): Boolean El análisis de las condiciones especificadas en el elemento existe la colección |
21 | def filtrado (p: ((A , B)) => Boolean): Mapa [A, B] Volver a todas las colecciones que cumplen los criterios especificados |
22 | def FilterKeys (p: (A) => Boolean): Mapa [A, B] Devuelve inmutable Mapa cumple los criterios especificados de |
23 | def encontrar (p: ((A , B)) => Boolean): Opción [(A, B)] Encontrar el primer elemento de la colección que reúne los criterios especificados |
24 | foreach def (f: ((A , B)) => Unidad): Unidad Todos los elementos de la función en el conjunto |
25 | def init: Mapa [A, B ] Devuelve todos los elementos, excepto el último |
26 | def estaVacia: Boolean Detectar si el mapa está vacía |
27 | Def: teclas Iterable [A] Devolver toda la llave / p> |
28 | def última: (A, B) Devuelve el último elemento |
29 | def max: (A, B) Encontrar el elemento máximo |
30 | def min: (A, B) Encontrar el elemento más pequeño |
31 | def mkString: String El conjunto de todos los elementos de la pantalla como una cadena |
32 | producto def: (A, B) Devuelve una colección de elementos digitales en la trama. |
33 | def eliminar (clave: A): Opción [B] Elimina la clave especificada |
34 | def retener (p: (A, B) => Boolean): Map.this.type Si cumplen con la condición devuelve true |
35 | tamaño def: Int Devuelve el número de elementos en Mapa |
36 | def suma: (A, B) Devuelve una colección de todos los elementos de lo digital |
37 | cola def: Mapa [A, B ] Devuelve una colección de otros elementos, excepto el primer elemento |
38 | def tome (n: Int): Mapa [A, B] Devuelve los n primeros elementos |
39 | def takeRight (n: Int): Mapa [A, B] n elementos Volver |
40 | def takeWhile (p: ((A , B)) => Boolean): Mapa [A, B] Devuelve los elementos de se cumple la condición especificada |
41 | def toArray: Array [(A, B)] Establecer matriz de transferencia |
42 | def toBuffer [B>: A] : Buffer [B] búfer de reserva, que contiene todos los elementos del mapa |
43 | def toList: Listado [A] Lista de vuelta, contiene todos los elementos del mapa |
44 | def toSeq: SEQ [A] Volver Sec, contiene todos los elementos Mapa |
45 | def Toset: Ajuste [A] Volver Set, que contiene todos los elementos del mapa |
46 | toString def (): String Devuelve un objeto String |
Más formas para referirse a la documentación de la API