Latest web development tutorials

Scala Карта (Карта)

коллекции Scala коллекции Scala

Карта (Карта) является своего рода итерационных пар ключ-значение (ключ / значение) структуры.

Все значения могут быть получены с помощью ключа.

Карта ключ является уникальным.

Карта также называется хеш-таблицы (Хэш-таблицы).

Карта Существуют два типа переменной и не могут быть изменены, за исключением того, что переменная объект может изменять его без изменяемых объектов не может.

По умолчанию, Scala неизменного Map. Если вам необходимо использовать переменную коллекцию, вам нужно явно ввести классимпорта scala.collection.mutable.Map

В Scala можно использовать переменную и неизменяемый Map, прямое использование карты неизменны, изменяемый использование mutable.Map. Следующий пример демонстрирует применение неизменного Карта:

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

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

При определении карты, необходимо определить тип пар ключ-значение. Если вам нужно добавить пары ключ-значение, вы можете использовать знак +, следующим образом:

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

Основные операции Карта

Scala Карта Существуют три основные операции:

способ описание
ключи Назад Карта все ключи (ключ)
ценности Карта возвращает все значения (значение)
IsEmpty В карте пуста Возвращает истинное

примеров

Следующий пример демонстрирует применение вышеуказанных трех основных методов:

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

Реализация указанного выше кода, выход:

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

Карта слияния

Вы можете использовать оператор++ или на карте. ++ ()Для соединения двух Map, удаляет дубликат ключа , когда карта слияния. Следующие два примера демонстрируют комбинированные карты:

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 )

   }
}

Реализация указанного выше кода, выход:

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

Карта выходных ключей и значений

Следующий цикл Еогеасп через карту вывода ключей и значений:

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

Реализация указанного выше кода, выход:

$ 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

Проверьте, существует ли указанный ключ в карте

Вы можете использовать методMap.contains , чтобы увидеть , если наличие указанного ключа карты.Примерами могут служить следующие:

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

Реализация указанного выше кода, выход:

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

Метод Scala Карта

В следующей таблице перечислены часто используемые методы Scala Карта:

Нет. Метод и Описание
1

Защиту ++ (хз: Карта [( A, B)]): Карта [A, B]

Она возвращает новую карту, New Map хз состав

2

Защиту - (elem1: A, elem2 : A, elems: A *): Карта [A, B]

Возвращает новую карту, удалите ключ к elem1, elem2 или других elems.

3

Защиту - (хз: GTO [A ]): Карта [A, B]

Возвращает новую карту, удалить хз объект, соответствующий ключ

4

Защиту получить (ключ: A): Опция [B]

Возвращает значение указанного ключа

5

Защиту итератора: Итератор [(A, B)]

Создайте новый итератор, и выводит пару ключей / значение

6

Защиту AddString (б: StringBuilder): StringBuilder

Эти карты все элементы, прикрепленные к StringBuilder, могут быть добавлены в сепаратор

7

Защиту AddString (б: StringBuilder, отд : String): StringBuilder

Эти карты все элементы, прикрепленные к StringBuilder, могут быть добавлены в сепаратор

8

Защиту применять (ключ: A): B

Возвращает значение указанного ключа, если нет возврата в метод по умолчанию на карте

9

Защиту ясно (): Unit

Очистить карту

10

Защиту клон (): Map [A , B]

От одного к другому Карта Карта

11

Защиту содержит (ключ: A): Boolean

Если есть указанный ключ Map, возвращает истину, в противном случае возвращает ложь.

12

Защиту copyToArray (хз: Array [( A, B)]): Unit

Копирование набора в массив

13

Защиту кол (р: ((А , В)) => Boolean): Int

Подсчитать количество элементов, которые удовлетворяют установленным критериям, установленным

14

Защиту по умолчанию (ключ: A):B

Значение по умолчанию определяется возвращается Карта, когда ключ нет.

15

Защиту падение (п: Int): Карта [A, B]

Новая коллекция перед тем, возвращающихся выбросе п элементов

16

Защиту dropRight (п: Int): Карта [A, B]

Назад отбросить последние п элементов новой коллекции

17

Защиту dropWhile (р: ((А , В)) => Boolean): Карта [A, B]

Отбросить элемент слева направо, пока условие не выполнено р

18

Защиту пусто: Карта [A, B ]

Туда же тип пустой карты

19

Защиту равно (что: Любой): Boolean

Если они равны Map (ключ / значение равны), возвращает истину, иначе ложь

20

Защиту существует (р: ((А , В)) => Boolean): Boolean

Анализируя условия, указанные в элемент коллекции существует

21

Защиту фильтр (р: ((А , В)) => Boolean): Карта [A, B]

Назад к списку всех коллекций, которые соответствуют указанным критериям

22

Защиту FilterKeys (р: (А) => Boolean): Карта [A, B]

Возвращает неизменны Карта соответствуют установленным критериям

23

Защиту найти (р: ((А , В)) => Boolean): Опция [(A, B)]

Нахождение первого элемента в коллекции, которая отвечает указанным критериям

24

Защиту Еогеасп (F: ((А , В)) => Unit): Unit

Все элементы функции к набору

25

Защиту INIT: Map [A, B ]

Возвращает все элементы, за исключением последнего

26

Защиту IsEmpty: Boolean

Детектирование пуста ли карта

27

Защиту клавиши: Iterable [A]

Возврат все ключевые / p>

28

Защиту последнее: (A, B)

Возвращает последний элемент

29

Защиту макс: (A, B)

Найти максимальный элемент

30

Защиту мин: (A, B)

Найти наименьший элемент

31

Защиту mkString: String

Множество всех элементов дисплея в виде строки

32

Защиту продукта: (A, B)

Возвращает коллекцию цифровых элементов в графике.

33

Защиту удалить (ключ: A): Опция [B]

Удаляет указанный ключ

34

Защиту сохраняют (р: (A, B) => Boolean): Map.this.type

Если они удовлетворяют условию возвращает истину

35

размер Защиту: Int

Возвращает количество элементов в карте

36

Защиту сумма: (А, В)

Возвращает коллекцию всех элементов цифрового

37

Защиту хвост: Карта [A, B ]

Возвращает коллекцию других элементов, кроме первого элемента

38

Защиту принять (п: Int): Карта [A, B]

Возвращает первые п элементов

39

Защиту takeRight (п: Int): Карта [A, B]

п элементов Назад

40

Защиту TakeWhile (р: ((А , В)) => Boolean): Карта [A, B]

Возвращает элементы заданного условия

41

Защиту ToArray: Array [(A, B)]

Установить массив передачи

42

Защиту toBuffer [B>: A] : Буфер [B]

Назад буфер, содержащий все элементы карты

43

Защиту ToList: Список [A]

Назад Список содержит все элементы карты

44

Защиту toSeq: Seq [A]

Назад Seq, содержит все элементы карты

45

Защиту toSet: Установите [A]

Назад Установить, содержащий все элементы карты

46

Защиту ToString (): String

Возвращает объект String,

Другие способы , чтобы обратиться к документации по API

коллекции Scala коллекции Scala