Latest web development tutorials

Scala mapa (mapa)

colecciones Scala colecciones Scala

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

colecciones Scala colecciones Scala