私の現在のシステムは、マップされた文字列、リスト[Int]、文字列がキー値 "Sk1"、 "Sk2"などであり、intは0-9。マップリスト内の*より大きい値を見つける
すべてのリストを検索する現在の方法ですが、これを編集して選択した「SK *」よりも大きい「Sk *」だけを見つける方法を教えてください。リストの値は末尾の最後の要素ですが、これはすでに検索する関数を持っています。これはhandleFiveオプションメニューです。明確にするために、私は最後の要素(すでにその機能を持っている)を見つけて、選択した株よりも大きな株のみを表示する必要があります。起動すると、これを編集する方法
// Returns a single result, not a list
def mnuShowSingleDataStock(f: (String) => (String,Int)) = {
print("Stock > ")
val data = f(readLine)
println(s"${data._1}: ${data._2}")
}
//Returns a list value
def mnuShowPointsForStock(f: (String) => (String,List[Int])) = {
print("Stock > ")
val data = f(readLine)
println(s"${data._1}: ${data._2}")
}
わからないユーザーとの対話メニューオプション
def handleFive(): Boolean = {
mnuShowSingleDataStock(currentStockLevel)
true
}
def handleSeven(): Boolean = {
mnuShowPointsForStock(allStockLevel)
true
}
関数の
ハンドラは、現在、それは、リストのすべての値を示し、I選択した値より大きい値のみを返すだけです。
//Show last element in the list, most current
def currentStockLevel (stock: String): (String, Int) = {
(stock, mapdata.get (stock).map(findLast(_)).getOrElse(0))
}
//Unsure how to change this to only return values greater than the selected one, not everything
def currentStockLevel (stock: String): (String, List[Int]) = {
(stock, mapdata.get (stock).map(findLast(_)).getOrElse(0))
}
私の現在リストにマッピング - これはMap[String, List[Int]]
タイプが所与の述語を満たすだけのキーを維持するために、filterKeys(f: String => Boolean)
方法を有している地図データ
val mapdata = Map(
"SK1" -> List(9, 7, 2, 0, 7, 3, 7, 9, 1, 2, 8, 1, 9, 6, 5, 3, 2, 2, 7, 2, 8, 5, 4, 5, 1, 6, 5, 2, 4, 1),
"SK2" -> List(0, 7, 6, 3, 3, 3, 1, 6, 9, 2, 9, 7, 8, 7, 3, 6, 3, 5, 5, 2, 9, 7, 3, 4, 6, 3, 4, 3, 4, 1),
"SK3" -> List(8, 7, 1, 8, 0, 5, 8, 3, 5, 9, 7, 5, 4, 7, 9, 8, 1, 4, 6, 5, 6, 6, 3, 6, 8, 8, 7, 4, 0, 6),
"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),
"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" -> List(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),
"SK7" -> List(6, 9, 5, 0, 0, 0, 0, 5, 8, 3, 8, 7, 1, 9, 6, 1, 5, 3, 4, 7, 9, 5, 5, 9, 1, 4, 4, 0, 2, 0),
"SK8" -> List(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)
)
@CyrilleCorpet @ CyrilleCorpet @ CyrilleCorpet質問を更新してもう少し理解できるようにしましたか? –
在庫がSK3の場合は、SK4、SK5 ...〜SK9、または最後の要素よりも大きな値を持つSK3のすべての要素の最後の要素を取得しますか? –
私はSK3を選択した場合、SK3の最後の値より高い最後の値を持つSK4、SK5などのすべての最後の要素を必要とします@CyrilleCorpet –