按离我的位置最近的第一个位置排序 – Android

private List<Location> sortLocations(List<Location> locations, final Location myLocation) {

        Comparator comp = new Comparator<Location>() {
            @Override
            public int compare(Location o1, Location o2) {

                Float dist1 = o1.distanceTo(myLocation);
                Float dist2 = o2.distanceTo(myLocation);

                return dist1.compareTo(dist2);
            }
        };

        Collections.sort(locations, comp);

    return locations;
}

我想按照离myLocation最近的第一个位置的顺序对一个位置列表进行排序。我的代码是否正确,因为问题是它不是升序或降序排序。它只是随机的,甚至不类似于数据库的顺序.但原始的和新的位置列表是相同的……。 Plz help…

解决方案:

这可能会有帮助

 private List<Location> sortLocations(List<Location> locations, final Location myLocation) {
        Map<Float, Location> map = new TreeMap<>(Comparator.comparing(Float::floatValue));
        locations.forEach(location -> map.put(Math.abs(location.distanceTo(myLocation)), location));
        return new ArrayList<>(map.values());
    }

给TA打赏
共{{data.count}}人
人已打赏
未分类

用tkinter创建一个由矩形组成的背景?

2022-9-11 19:16:10

未分类

如何让这个for循环跳过没有出席者和没有基于domain.com的外部出席者的会议?

2022-9-11 19:26:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索