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