Latest web development tutorials

Scala Set (коллекция)

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

Scala Set (сбор) не повторяется набор объектов, все элементы являются уникальными.

Коллекция Scala делится на переменные и неизменных коллекций.

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

Ссылка по умолчанию scala.collection.immutable.Set, неизменное множество примеров являются следующие:

val set = Set(1,2,3)
println(set.getClass.getName) // 

println(set.exists(_ % 2 == 0)) //true
println(set.drop(1)) //Set(2,3)

Если вам необходимо использовать переменную коллекции необходимо ввести scala.collection.mutable.Set:

import scala.collection.mutable.Set // 可以在任何地方引入 可变集合

val mutableSet = Set(1,2,3)
println(mutableSet.getClass.getName) // scala.collection.mutable.HashSet

mutableSet.add(4)
mutableSet.remove(1)
mutableSet += 5
mutableSet -= 2

println(mutableSet) // Set(5, 3, 4)

val another = mutableSet.toSet
println(another.getClass.getName) // scala.collection.immutable.Set

Примечание: Хотя переменная и неизменная Set набор добавлять или удалять элементы, но есть очень большая разница.Неизменны операция Set, будет производить новый набор, оригинальный набор не изменился, что то же самое, как список. Работа переменной изменения набора является то, что сам по себе набор, похожий на ListBuffer.


Сбор основных операций

Коллекция Scala имеет три основные операции:

  • head возвращает первый элемент коллекции
  • tail возвращает коллекцию, содержащую в дополнение к другим элементам первого элемента
  • isEmpty возвращает истину , если коллекция пуста

Любая операция для коллекций Scala могут быть использованы для выражения трех основных операций. Примерами могут служить следующие:

object Test {
   def main(args: Array[String]) {
      val site = Set("w3big", "Google", "Baidu")
      val nums: Set[Int] = Set()

      println( "第一网站是 : " + site.head )
      println( "最后一个网站是 : " + site.tail )
      println( "查看列表 site 是否为空 : " + site.isEmpty )
      println( "查看 nums 是否为空 : " + nums.isEmpty )
   }
}

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

$ vim Test.scala 
$ scala Test.scala 
第一网站是 : w3big
最后一个网站是 : Set(Google, Baidu)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true

комплект подключений

Вы можете использовать оператор++ или Set.Метод++ ()для подключения двух комплектов. Если есть повторяющиеся элементы будут удалены повторяющиеся элементы. Примерами могут служить следующие:

object Test {
   def main(args: Array[String]) {
      val site1 = Set("w3big", "Google", "Baidu")
      val site2 = Set("Faceboook", "Taobao")

      // ++ 作为运算符使用
      var site = site1 ++ site2
      println( "site1 ++ site2 : " + site )

      //  ++ 作为方法使用
      site = site1.++(site2)
      println( "site1.++(site2) : " + site )
   }
}

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

$ vim Test.scala 
$ scala Test.scala 
site1 ++ site2 : Set(Faceboook, Taobao, Google, Baidu, w3big)
site1.++(site2) : Set(Faceboook, Taobao, Google, Baidu, w3big)

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

Вы можете использовать методSet.min найти наименьший элемент в коллекции, используйте Set.maxспособ найти самый большой элемент в коллекции. Примерами могут служить следующие:

object Test {
   def main(args: Array[String]) {
      val num = Set(5,6,9,20,30,45)

      // 查找集合中最大与最小元素
      println( "Set(5,6,9,20,30,45) 集合中的最小元素是 : " + num.min )
      println( "Set(5,6,9,20,30,45) 集合中的最大元素是 : " + num.max )
   }
}

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

$ vim Test.scala 
$ scala Test.scala 
Set(5,6,9,20,30,45) 集合中的最小元素是 : 5
Set(5,6,9,20,30,45) 集合中的最大元素是 : 45

пересечение

Вы можете использовать методSet. & Set.intersectили методы , чтобы увидеть пересечение двух множеств элементов. Примерами могут служить следующие:

object Test {
   def main(args: Array[String]) {
      val num1 = Set(5,6,9,20,30,45)
      val num2 = Set(50,60,9,20,35,55)

      // 交集
      println( "num1.&(num2) : " + num1.&(num2) )
      println( "num1.intersect(num2) : " + num1.intersect(num2) )
   }
}

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

$ vim Test.scala 
$ scala Test.scala 
num1.&(num2) : Set(20, 9)
num1.intersect(num2) : Set(20, 9)

Scala Set распространенный метод

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

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

Защиту + (элем: A): Установите [A]

Добавить новый элемент в сборе, х и создать новую коллекцию, если не существующих элементов

2

Защиту - (элем: A): Set [A]

Удаление элементов из коллекции, а также создать новую коллекцию

3

Защиту содержит (элем: A): Boolean

Если элемент присутствует в коллекции, она возвращает истину, в противном случае возвращает ложь.

4

Защиту & (что: Set [A ]): Set [A]

Возвращает пересечение двух множеств

5

Защиту & ~ (что: Set [ A]): Set [A]

Возвращает разность множеств двух множеств

6

Защиту + (elem1: A, elem2 : A, elems: A *): Установить [A]

Добавляя входящие элементы указанной коллекции, чтобы создать новый набор неизменен

7

Защиту ++ (elems: A): Set [A]

Объединение двух коллекций

8

Защиту - (elem1: A, elem2 : A, elems: A *): Установить [A]

Удаляя элементы указанной коллекции, переданного создать новый набор неизменен

9

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

Добавьте все элементы коллекции к неизменному буфера строки

10

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

Добавьте все элементы неизменного коллекции в строку буфера, используя указанный разделитель

11

Защиту применяются (элем: A)

Определение, содержит ли коллекция указанный элемент

12

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

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

13

Защиту copyToArray (хз: Array [A ], запустите: Int, Len: Int): Unit

Скопируйте непреложный элемент коллекции в массив

14

Защиту Diff (что: Set [A ]): Set [A]

Разница устанавливает сравнения двух наборов

15

Защиту падение (п: Int): Установите [A]]

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

16

Защиту dropRight (п: Int): Установите [A]

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

17

Защиту dropWhile (р: (А) => Boolean): Установите [A]

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

18

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

равен метод может быть использован в любой последовательности. Для сравнения рядов равны.

19

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

Анализируя непреложный набор заданных условий элемент существует.

20

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

Выход отвечает всем указанным критериям неизменные элементы коллекции.

21

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

Обнаружение первого элемента в коллекции неизменного соответствуют установленным критериям

22

Защиту FORALL (р: (А) => Boolean): Boolean

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

23

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

Функция применяется ко всем элементам коллекции неизменного

24

Защиту головка: A

Получить первый элемент коллекции неизменного

25

Def инициализации: Set [A]

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

26

Защиту пересекаются (что: Set [A ]): Set [A]

Вычислить пересечение двух множеств

27

Защиту IsEmpty: Boolean

Определить, является ли пустая коллекция

28

Защиту итератора: Итератор [A]

Создайте новый итератор для перебора элементов

29

Защиту в прошлом: A

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

30

Защиту карту [B] (F: (A) => B): immutable.Set [B]

Через данный метод будет пересчитать все элементы

31

Защиту макс: A

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

32

Защиту мин: A

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

33

Защиту mkString: String

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

34

Защиту mkString (SEP: String): Строка

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

35

Защиту продукта:

Возвращает неизменный набор чисел в элементах сюжета.

36

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

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

37

Защиту splitAt (п: Int): (Set [A], установите [A])

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

38

Защиту subsetOf (что: Set [A ]): Boolean

Если коллекция содержит подмножество возвращает истину, иначе ложь

39

Защиту сумма: A

Возвращает неизменный набор всех элементов цифровой и

40

Защиту Хвост: [A]

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

41

Защиту принять (п: Int): Установите [A]

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

42

Защиту takeRight (п: Int): Установите [A]

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

43

Защиту ToArray: Array [A]

Будет преобразован в цифровой коллекции

44

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

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

45

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

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

46

Защиту toMap [T, U]: Карта [T, U]

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

47

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

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

48

Защиту ToString (): String

Возвращает строку объекта для представления

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

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