2016-11-23 18 views
1

現在、値がSK5と検索され、SK5より上位のすべての値が返されます。しかし、フォーマットは以下のように返されます。出力スカラリストの書式設定

リスト((SK6、リスト(2,7、5,9、1,9、8,4、1,7、3,7、0,8、4、5、9、2、 (SK4、List(2,9,5,7,0,8,6)、 6、7、8、7、9、 (SK8、リスト(0,1,3,1,6,0,0,1,3,8,5,4,0,9,7,1,4,5,2,8))、 2つ、8つ、8つ、3つ、1つ、0、​​8つ、 (SK9、List(7,1,8,8,4,4,2,2,7,,4,0,6,9,5,5,6,7,8,9,10,11,12,13,14,15,16,17,18) (SK5、List(2,6,8,0,3,5,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23) 1,2,3,4,5,3,5,7,8,8,2,5,9,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23、

私がしたいことはSK6である - 、SK4 9から8などなど

すべて私がこれを分割し、唯一のリストの最後の数を表示する方法を、束ね?私はすでにこれをフィルタリングしていたと思ったが、明らかにそうではなかった。 以下は私のコードです。あなたは、各リストの最後の値を取得しようとしている場合MapdataMap(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)

関連する問題