В настоящее время я могу найти значение, скажем SK5
, и оно вернет все значения выше SK5
. Однако формат возвращается, как показано ниже;Форматирование вывода scala lists
Список ((SK6, Список (2, 7, 5, 9, 1, 9, 8, 4, 1, 7, 3, 7, 0, 8, 4, 5, 9, 2, 4, 4, 8, 7, 9, 2, 2, 7, 9, 1, 6, 9)), (SK4, List (2, 9, 5, 7, 0, 8, 6, 6, 7, 9, 0, 1, 3, 1, 6, 0, 0, 1, 3, 8, 5, 4, 0, 9, 7, 1, 4, 5, 2, 8)), (SK8, 2, 8, 8, 3, 1, 1, 0, 8, 5, 9, 0, 3, 1, 6, 8, 7, 9, 6, 7, 7, 0, 9, 5, 2, 5 , 0, 2, 1, 8, 6)), (SK9, List (7, 1, 8, 8, 4, 4, 2, 2, 7, 4, 0, 6, 9, 5, 5, 4 , 9, 1, 8, 6, 3, 4, 8, 2, 7, 9, 7, 2, 6, 6)), (SK5, List (2, 6, 8, 0, 3, 5, 5 , 2, 5, 9, 4, 5, 3, 5, 7, 8, 8, 2, 5, 9, 3, 8, 6, 7, 8, 7, 4, 1, 2, 3)))
То, что я хочу SK6 - 9, SK4 - 8 и т.д. и т.п.
Все в комплекте вместе, Как бы я разделил это и показать только последний номер в списке? Я думал, что я уже отфильтровал это, но, видимо, нет. Ниже мой код. Mapdata
сохраняется как Map(String, List[Int])
//functionality to find the last tail element, the "Current" stock price
def findLast(list:List[Int]) = list.last
//8 - Show Stocks Higher Than (W) THIS ONE THIS ONE THIS ONE
def handleEight(): Boolean = {
mnuShowPointsForStockHigher(higherThan2)
true
}
//Returns a list value
def mnuShowPointsForStockHigher(stock: (String) => List[(String, List[Int])]) = {
print("Enter Stock > ")
val data = stock(readLine)
println(s"${data}")
//println(s"${data._1}: ${data._2.last}")
}
def higherThan2(stock: String): List[(String, List[Int])] = {
mapdata.toList.sortWith(_._2.last > _._2.last).takeWhile(row => row._2.last > mapdata.get(stock).map(findLast(_)).getOrElse(0))
}
Вы пытаетесь получить только последний номер/элемент в списке? затем используйте List.last. Используйте эту ссылку для получения дополнительной информации: http://www.scala-lang.org/api/current/scala/collection/immutable/List.html – Pavel
Я пробовал, что вместо этого возвращает только последний список из последнего значения в каждом списке @PavelOliynyk –
вам нужно использовать карту с последним – Pavel