val test = List[Int](50, 115, 200, 50, 30, 22, 175, 350, 5000)
如果我有一個這樣的列表,我想減少它,以便任何50以內的值都被認爲是重複的,但我想保留其中一個價值。變換列表只有一個範圍內的項目
我現在擁有這個權利,但是它刪除了每個其他我想保持每次最高的50個內的所有內容。
test.filter(x => !test.exists(v => if(v == x) false else Math.abs(v - x) < 50));
List(115, 350, 5000)
所以理想情況下,這個列表將包括50和200。
編輯: 我實際上最終想要做一個地圖。
val tmap = Map[String, String]("57" -> "550", "145" -> "2000", "85" -> "78", "40" -> "8556")
我想查看50範圍內的所有關鍵點,然後在每次處於該範圍內時獲取具有最高數值的關鍵點。任何不在我保存的範圍內。我想在這裏結果。
Map(145 -> 2000, 40 -> 8556)
也許我應該提出一個新的問題?
你想如何處理你有(1,50,99,148)的情況?這是否會返回一個,因爲第一個是在第二個50秒內,這是在第三個50內,這是在第四個的50內?你想要保存哪一個?簡單地創建一個x/50桶對你來說就足夠了,還是你需要更動態的東西? –
我想返回148 @ assaf-mendelson – ozzieisaacs