【问题标题】:Adding a list of elements to a linked list将元素列表添加到链表
【发布时间】:2017-09-09 06:08:07
【问题描述】:

我正在使用谷歌地图开发一个安卓应用程序。 我创建了一个存储 Lat/Lng,Float 的 hashmap。

Map<LatLng,Float> distance_Map = new HashMap<LatLng, Float>();

我使用它来存储2个给定纬度和经度之间的距离,使用以下方法。

Location loc1 = new Location("");
        loc1.setLatitude(markerPoints.get(0).latitude);
        loc1.setLongitude(markerPoints.get(0).longitude);

        Location loc2 = new Location("");
        loc2.setLatitude(markerPoints.get(i).latitude);
        loc2.setLongitude(markerPoints.get(i).longitude);

        float distance = loc1.distanceTo(loc2);

        distance_Map.put(markerPoints.get(i), distance);

所以我通过一个循环运行此代码并找到用户输入的第一个地方与其他地方之间的距离,并将相应的距离和 Lng/Lat 存储在 distance_Map 中。之后我使用以下代码对这些距离进行排序。

List<Map.Entry<LatLng,Float>> sorted_Distance_LatLng_List = new LinkedList<Map.Entry<LatLng, Float>>(distance_Map.entrySet());
            Collections.sort(sorted_Distance_LatLng_List, new Comparator<Map.Entry<LatLng, Float>>() {
                @Override
                public int compare(Map.Entry<LatLng, Float> o1, Map.Entry<LatLng, Float> o2) {
                    return o1.getValue().compareTo(o2.getValue());

                }
            });

这运行得很好。但是我需要使用相同的linkedlist sorted_Distance_LatLng_List 来对另一组距离进行排序。为此,我通过清除其值来使用相同的哈希图(distance_Map)。

distance_Map.clear();
distance_Map.put(markerPoints.get(i), distance);

但我不知道如何将这个 distance_Map 插入同一个 LinkedList(sorted_Distance_LatLng_List)。我使用以下代码

sorted_Distance_LatLng_List.clear();

                List<Map.Entry<LatLng,Float>> sorted_Distance_LatLng_List = new LinkedList<Map.Entry<LatLng, Float>>(distance_Map.entrySet());
                Collections.sort(sorted_Distance_LatLng_List, new Comparator<Map.Entry<LatLng, Float>>() {
                    @Override
                    public int compare(Map.Entry<LatLng, Float> t1, Map.Entry<LatLng, Float> t2) {
                        return t1.getValue().compareTo(t2.getValue());
                    }
                });

但它给了我错误,因为列表已经创建。我该怎么做?请帮助我。提前谢谢你。

【问题讨论】:

    标签: java android list arraylist linked-list


    【解决方案1】:

    由于列表已创建,您无需再次创建。第二次,您只需为其分配值。 如果您从第二个代码中删除List&lt;Map.Entry&lt;LatLng,Float&gt;&gt;,错误就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 2014-06-16
      • 2017-02-25
      相关资源
      最近更新 更多