Преобразование ArrayBuffer [Map [String, String]] в Array [Map [String, String]] в Scala

Как я могу преобразовать ArrayBuffer из Maps(String,String) в Array из Maps(String, String) в Scala с помощью toArray()?

ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))

к

Array(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))

Вы можете сделать arrBuff.toArray

Manoj Kumar Dhakad 26.07.2018 05:34
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
2 352
2

Ответы 2

ArrayBuffer - это изменяемая структура данных. вы можете вызвать .toArray, чтобы преобразовать его в неизменяемый Array

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))
res1: scala.collection.mutable.ArrayBuffer[scala.collection.immutable.Map[String,String]] = ArrayBuffer(Map(x1 -> x, y1 -> y), Map(x2 -> x, y2 -> y))

сейчас звоните .toArray,

scala> res1.toArray
res2: Array[scala.collection.immutable.Map[String,String]] = Array(Map(x1 -> x, y1 -> y), Map(x2 -> x, y2 -> y))

См. Определение для toArray, которое возвращает Array[B],

scala> res1.toArray
   def toArray[B >: scala.collection.immutable.Map[String,String]](implicit evidence$1: scala.reflect.ClassTag[B]): Array[B]

toArray не всегда работает, например. «Ошибка недостаточно аргументов для toArray. Неуказанное значение параметра свидетельствует о $ 2».

WestCoastProjects 07.03.2021 05:05

Если вам нужен неизменный массив Scala и неизменяемая карта, тогда

import scala.collection.mutable.ArrayBuffer    
ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y")).toArray

Другие вопросы по теме