簡體   English   中英

如何按最接近另一個變量 Kotlin 的值對列表進行排序

[英]How to sort a list by the closest value to another variable Kotlin

我想通過將變量之間的距離與我擁有的固定變量進行比較來對元素列表進行排序。 我的變量是我設備的當前坐標。 像這樣的東西:

class Location(var lat: Double, var Long:Double)
myLocation = Location(-33.07216, -36.70315)
val locations = mutableListOf(Location(-23.23018, -48.50247),Location(8.3334, 49.04748),Location(61.82096, 50.45373))

我有一個包含其中幾個類的列表。 我想根據離我當前位置最近的類對列表進行排序我該怎么做? 我對 Comparator、SortBy 和 SortWith 很迷茫

sortWith用於使用比較器 class。 您通常只會在設置復雜關系時使用它,例如在第一件事上打成平手的情況下按一件事然后另一件事排序。

sortBy允許您編寫一個簡單的 lambda 來選擇一個用於比較項目的值。 在這種情況下,您希望按到某個位置的距離排序,因此您的 lambda 應該返回該距離。

locations.sortBy { it.distanceTo(myLocation) }

如果您首先想要最遠的距離,請改用sortByDescending

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM