Latest web development tutorials

Scala Mapa (mapa)

coleções Scala coleções Scala

Map (mapa) é uma espécie de pares chave-valor iterativos (key / value) estrutura.

Todos os valores podem ser recuperados por uma chave.

Mapear a chave é única.

Mapa também é chamado de uma tabela hash (As tabelas de hash).

Mapa Existem dois tipos de variáveis ​​e não podem ser alteradas, com excepção de que o objecto variável pode modificá-lo sem objetos mutáveis ​​não pode.

Por padrão, o Scala Mapa imutável. Se você precisar usar uma coleção variável, você precisa de introduzir explicitamente classe deimportação scala.collection.mutable.Map

Em Scala pode utilizar o Map variável e imutável, o uso Mapa direta imutável, mutável uso mutable.Map. O exemplo que se segue demonstra a aplicação do Mapa imutável:

// 空哈希表,键为字符串,值为整型
var A:Map[Char,Int] = Map()

// Map 键值对演示
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")

Ao definir um mapa, você precisa definir o tipo de pares chave-valor. Se você precisar adicionar pares de valores-chave, você pode usar o sinal +, da seguinte forma:

A += ('I' -> 1)
A += ('J' -> 5)
A += ('K' -> 10)
A += ('L' -> 100)

Básico Mapa de Operações

Scala Mapa Há três operações básicas:

caminho descrição
chaves Voltar Mapa todas as chaves (key)
valores Mapa retorna todos os valores (valor)
isEmpty No mapa é Returns vazias verdadeira

Exemplos

O exemplo que se segue demonstra a aplicação dos três métodos básicos acima:

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

Implementação do código acima, a saída é:

$ scalac Test.scala 
$ scala Test
colors 中的键为 : Set(red, azure, peru)
colors 中的值为 : MapLike(#FF0000, #F0FFFF, #CD853F)
检测 colors 是否为空 : false
检测 nums 是否为空 : true

fusão mapa

Você pode usar o operador++ ou Mapa. ++ ()Para ligar duas Mapa, remove duplicado chave quando Mapa fusão. Os dois exemplos que se seguem demonstram o 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 )

   }
}

Implementação do código acima, a saída é:

$ 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 teclas de saída e valores

O seguinte loop foreach através do Mapa de chaves e valores de saída:

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

Implementação do código acima, a saída é:

$ 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

Verifique se a chave especificada existe no Mapa

É possível utilizar o métodoMap.contains para ver se a presença do Mapa chave especificada.Exemplos são os seguintes:

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 键不存在")
      }
   }
}

Implementação do código acima, a saída é:

$ scalac Test.scala 
$ scala Test
w3big 键存在,对应的值为 :http://www.w3big.com
baidu 键存在,对应的值为 :http://www.baidu.com
google 键不存在

Método Scala Mapa

A tabela a seguir lista os métodos comumente utilizados Mapa Scala:

Não. Método e Descrição
1

def ++ (xs: Mapa [( A, B)]): Mapa [A, B]

Ele retorna um novo mapa, Novo Mapa xs composição

2

def - (elem1: A, elem2 : A, elems: A *): Mapa [A, B]

Retorna um novo mapa, remova a chave para elem1, elem2 ou outros elems.

3

def - (xs: GTO [A ]): Mapa [A, B]

Retorna um novo mapa, remova xs objeto tecla correspondente

4

def get (key: A): Opção [B]

Retorna o valor da chave especificada

5

def iterator: Iterator [(A, B)]

Criar uma nova iteração, e emite o valor par chave /

6

def addString (b: StringBuilder): StringBuilder

O mapa de todos os elementos ligados para o StringBuilder, pode ser adicionado a um separador

7

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

O mapa de todos os elementos ligados para o StringBuilder, pode ser adicionado a um separador

8

def aplicar (key: A): B

Retorna o valor da chave especificada, se não houver retorno ao Mapa método padrão

9

def clear (): Unidade

Limpar mapa

10

clone def (): Mapa [A , B]

De um para outro do Mapa Mapa

11

def contém (key: A): booleano

Se houver um mapa de chave especificado, retorna true, caso contrário, retorna false.

12

def copyToArray (xs: Array [( A, B)]): Unidade

Conjunto de cópias para uma matriz

13

def count (p: ((A , B)) => Boolean): Int

Calcule o número de elementos que atendem aos critérios especificados definidos

14

padrão def (key: A): B

O valor padrão é definido Mapa retorna quando a chave não está presente.

15

def cair (n: int): Mapa [A, B]

A nova coleção antes de retornar devoluções n elementos

16

def dropRight (n: int): Mapa [A, B]

Voltar descartar os últimos n elementos da nova coleção

17

DEF dropWhile (p: ((A , B)) => booleano): Mapa [A, B]

elemento de descarte esquerda para a direita, até que a condição não for satisfeita p

18

def vazio: Mapa [A, B ]

Devolver o mesmo tipo de mapa vazio

19

def equals (que: Qualquer): booleano

Se os dois são iguais Mapa (chave / valor são iguais), retorna true, caso contrário false

20

DEF existe (p: ((A , B)) => booleano): booleana

Analisando as condições especificadas no existe o elemento de coleção

21

DEF filtro (p: ((A , B)) => booleano): Mapa [A, B]

Voltar para todas as coleções que atendem aos critérios especificados

22

def filtragem (p: (A) => Boolean): Mapa [A, B]

Retorna imutável Mapa atendem aos critérios especificados de

23

DEF encontrar (p: ((A , B)) => booleano): Opção [(A, B)]

Encontrando-se o primeiro elemento na coleção que atenda aos critérios especificados

24

foreach def (f: ((A , B)) => Unit): Unidade

Todos os elementos da função para o conjunto

25

def INIT: Mapa [A, B ]

Retorna todos os elementos, exceto o último

26

def isEmpty: Boolean

Detectar se o mapa está vazio

27

chaves Def: Iterable [A]

Devolver todas as chaves / p>

28

DEF última: (A, B)

Retorna o último elemento

29

Def max: (A, B)

Localizar o elemento máximo

30

DEF min: (A, B)

Encontre o menor elemento

31

def mkString: String

O conjunto de todos os elementos do mostrador como uma string

32

produto def: (A, B)

Retorna uma coleção de elementos digitais na trama.

33

def remover (key: A): Opção [B]

Remove a chave especificada

34

DEF reter (p: (A, B) => booleano): Map.this.type

Se eles satisfazem a condição retorna true

35

tamanho def: Int

Retorna o número de elementos no Mapa

36

soma def: (A, B)

Retorna uma coleção de todos os elementos da sociedade digital

37

tail def: Mapa [A, B ]

Retorna uma coleção de outros elementos, exceto o primeiro elemento

38

def tomar (n: int): Mapa [A, B]

Retorna os primeiros n elementos

39

def takeRight (n: int): Mapa [A, B]

n elementos Voltar

40

DEF TakeWhile (p: ((A , B)) => booleano): Mapa [A, B]

Retorna os elementos condição especificada for atendida

41

def toArray: Array [(A, B)]

Definir matriz de transferência

42

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

Voltar tampão, contendo todos os elementos do mapa

43

ToList def: Lista [A]

Lista de volta, contém todos os elementos do mapa

44

def toSeq: Seq [A]

Voltar Seq, contém todos os elementos Mapa

45

def Toset: Ajuste [A]

Voltar Definir, contendo todos os elementos do mapa

46

toString def (): String

Retorna um objeto String

Mais maneiras para se referir a documentação da API

coleções Scala coleções Scala