2016-11-23 2 views
1

В настоящее время я могу найти значение, скажем 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)) 
    } 
+1

Вы пытаетесь получить только последний номер/элемент в списке? затем используйте List.last. Используйте эту ссылку для получения дополнительной информации: http://www.scala-lang.org/api/current/scala/collection/immutable/List.html – Pavel

+0

Я пробовал, что вместо этого возвращает только последний список из последнего значения в каждом списке @PavelOliynyk –

+0

вам нужно использовать карту с последним – Pavel

ответ

0

Если вы пытаетесь получить последнее значение в каждом списке, лучший вариант будет карта + последней. Извините, не нужно использовать flatten. Мой плохой .. Должен быть что-то строка: list.map (x => x.last)

Смежные вопросы