Latest web development tutorials

Scala Carte (carte)

collections Scala collections Scala

Carte (carte) est une sorte de paires clé-valeur itératives (clé / valeur) structure.

Toutes les valeurs peuvent être récupérées par une clé.

Carte de la clé est unique.

La carte est aussi appelée une table de hachage (tables de hachage).

Carte Il existe deux types de variables et ne peuvent être modifiés, à l'exception que l'objet variable peut modifier sans objets mutables ne peut pas.

Par défaut, Scala immuable carte. Si vous avez besoin d'utiliser une collection variable, vous devez introduire explicitement classescala.collection.mutable.Map d'importation

En Scala vous pouvez utiliser la carte variable et immuable, l'utilisation directe Carte immuable, mutable utilisation mutable.Map. L'exemple suivant illustre l'application de l'immuable Carte:

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

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

Lorsque vous définissez une carte, vous devez définir le type de paires clé-valeur. Si vous devez ajouter des paires clé-valeur, vous pouvez utiliser le signe +, comme suit:

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

Opérations Carte de base

Scala Carte Il y a trois opérations de base:

manière description
clés Retour Carte toutes les clés (clés)
valeurs Carte Renvoie toutes les valeurs (valeur)
isEmpty Dans la carte est vide vrai retour

Exemples

L'exemple suivant illustre l'application des trois méthodes de base ci-dessus:

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

Mise en œuvre du code ci-dessus, la sortie est:

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

Plan fusion

Vous pouvez utiliser l'opérateur++ ou Carte. ++ ()Méthode pour connecter deux Map, supprime la clé en double lorsque la carte de fusion. Les deux exemples suivants démontrent la carte combinée:

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 )

   }
}

Mise en œuvre du code ci-dessus, la sortie est:

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

Carte des clés et des valeurs de sortie

La boucle foreach suivante via la sortie Carte des clés et des valeurs:

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

Mise en œuvre du code ci-dessus, la sortie est:

$ 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

Vérifiez si la clé spécifiée existe dans la carte

Vous pouvez utiliser la méthodeMap.contains pour voir si la présence de la carte clé spécifiée.Des exemples sont les suivants:

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

Mise en œuvre du code ci-dessus, la sortie est:

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

Méthode Scala Carte

Le tableau suivant répertorie les méthodes couramment utilisées Scala Carte:

Non. Méthode et description
1

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

Il retourne une nouvelle carte, nouvelle carte xs composition

2

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

Renvoie une nouvelle carte, retirez la clé de elem1, elem2 ou d'autres elems.

3

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

Renvoie une nouvelle carte, supprimer xs objet clé correspondante

4

obtenir def (clé: A): Option [B]

Renvoie la valeur de la clé spécifiée

5

def iterator: Iterator [(A, B)]

Créer une nouvelle iterator, et délivre la valeur paire clé /

6

def addString (b: StringBuilder): StringBuilder

La carte de tous les éléments attachés à la StringBuilder, peuvent être ajoutés à un séparateur

7

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

La carte de tous les éléments attachés à la StringBuilder, peuvent être ajoutés à un séparateur

8

appliquer def (clé: A): B

Renvoie la valeur de la clé spécifiée, s'il n'y a pas de retour à la méthode par défaut Carte

9

def clear (): Unité

Effacer la carte

10

def clone (): Carte [A , B]

De l'un à l'autre Carte Plan

11

def contient (clé: A): Boolean

S'il y a une clé Carte spécifiée, renvoie true, sinon retourne false.

12

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

Copie réglé sur un tableau

13

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

Calculer le nombre d'éléments qui répondent aux critères spécifiés définis

14

def défaut (clé: A): B

La valeur par défaut est définie Carte des rendements lorsque la clé est absente.

15

def drop (n: Int): Carte [A, B]

La nouvelle collection avant rejets n éléments de retour

16

def dropRight (n: Int): Carte [A, B]

Retour jeter les n derniers éléments de la nouvelle collection

17

def dropWhile (p: ((A , B)) => Boolean): Carte [A, B]

élément Jeter gauche à droite, jusqu'à ce que la condition ne p satisfait

18

def vide: [A, B ]

Retour le même type de vide Carte

19

def est égal à (que: Tout):Boolean

Si les deux sont égaux carte (clé / valeur sont égales), renvoie true, sinon false

20

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

Analyser les conditions spécifiées dans l'élément de collection existe

21

def filtre (p: ((A , B)) => Boolean): Carte [A, B]

Retour à toutes les collections qui répondent aux critères spécifiés

22

def FilterKeys (p: (A) => Boolean): Carte [A, B]

Retours immuable Carte répondent aux critères spécifiques de

23

trouver def (p: ((A , B)) => Boolean): Option [(A, B)]

Trouver le premier élément de la collection qui répond aux critères spécifiés

24

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

Tous les éléments de la fonction à l'ensemble

25

def INIT: Carte [A, B ]

Renvoie tous les éléments, sauf le dernier

26

def isEmpty: Boolean

Détecter si la carte est vide

27

clés def: itératifs [A]

Retour toutes les clés / p>

28

def dernière: (A, B)

Retourne le dernier élément

29

def max: (A, B)

Trouver l'élément maximal

30

def min: (A, B)

Trouver le plus petit élément

31

def mkString: String

L'ensemble de tous les éléments de l'affichage sous forme de chaîne

32

produit def: (A, B)

Retourne une collection d'éléments numériques dans l'intrigue.

33

def supprimer (touche: A): Option [B]

Supprime la clé spécifiée

34

conserver def (p: (A, B) => Boolean): Map.this.type

Si elles remplissent la condition renvoie true

35

Taille du def: Int

Retourne le nombre d'éléments dans la carte

36

def somme: (A, B)

Renvoie une collection de tous les éléments du numérique

37

def queue: Carte [A, B ]

Retourne une collection d'autres éléments, sauf le premier élément

38

prendre def (n: Int): Carte [A, B]

Renvoie les n premiers éléments

39

def takeRight (n: Int): Carte [A, B]

n éléments Retour

40

def takeWhile (p: ((A , B)) => Boolean): Carte [A, B]

Retours éléments condition spécifiée est remplie

41

def toArray: Array [(A, B)]

Régler tableau de transfert

42

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

tampon Retour, contenant tous les éléments de la carte

43

def toList: Liste [A]

Liste Retour, contient tous les éléments de la carte

44

def toSeq: Seq [A]

Retour Seq, contient tous les éléments Plan

45

def Toset: Réglez [A]

Retour Définir, contenant tous les éléments de la carte

46

def toString (): String

Renvoie un objet String

D' autres façons de se référer à la documentation de l' API

collections Scala collections Scala