У меня есть 3 ListBuffers одинаковой длины.
devicenamelist: ListBuffer [Строка]
список дат: ListBuffer [String]
wordcountssortedlistbuf [(String; Int)]
Теперь мне нужно преобразовать их в формат
ListBuffer (Строка, Строка, Строка, Интервал)
Я пытался сделать следующее
var sortedrecords=scala.collection.mutable.ListBuffer[(String,String,String,Int)]()
for(i <- 0 to devicenamelist.length)
{
sortedrecords+=(devicenamelist(i),datelist(i),wordcountssortedlistbuf(i)._1,wordcountssortedlistbuf(i)._2)
}
Это дает мне ошибку следующим образом
[ошибка] найдена строка
Обязательный (String, String, String, Int)
Как операция добавления списка вверху дает только одну строку, когда я намеревался создать (String, String, String, Int). Я что-то упускаю?
Благодарность
1 ответ
Вам не хватает скобок в строке +=
, но, пожалуйста, не делайте этого, мне больно видеть, как кто-то пишет что-то подобное в scala.
Попробуйте вместо этого что-нибудь вроде этого:
val sortedrecords = devicenamelist.zip(datelist).zip(wordcountssortedlistbuf)
.map { case ((devicename, date), (word, count)) =>
(devicename, date, word, count)
}
Похожие вопросы
Связанные вопросы
Новые вопросы
scala
Scala - это язык программирования общего назначения, в основном предназначенный для виртуальной машины Java. Разработанный для краткого, элегантного и безопасного для типов представления общих шаблонов программирования, он сочетает в себе как императивный, так и функциональный стили программирования. Его ключевые особенности: продвинутая система статического типа с выводом типа; типы функций; сопоставления с образцом ; неявные параметры и преобразования; перегрузка оператора; полная совместимость с Java; совпадение