Java 比较两个哈希表值并将结果放入arraylist

Java 比较两个哈希表值并将结果放入arraylist,java,android,arraylist,location,hashtable,Java,Android,Arraylist,Location,Hashtable,我有点拘泥于从我正在创建的哈希表中比较和收集数据的方式。代码有点凌乱,因为我现在对下一步的方向有点困惑,我道歉 我有两个哈希表。每个表都包含坐标键。一张桌子放经度,另一张桌子放纬度。每一侧的值保留一个位置。我要做的是比较两个表的值,因此如果字符串相同,那么键和值可以放在单独的ArrayList中。一个坐标列表,可能一个用于lat,一个用于lon,以简化gps功能,然后是位置列表 代码如下: public static void trails(String[] args) { H

我有点拘泥于从我正在创建的哈希表中比较和收集数据的方式。代码有点凌乱,因为我现在对下一步的方向有点困惑,我道歉

我有两个哈希表。每个表都包含坐标键。一张桌子放经度,另一张桌子放纬度。每一侧的值保留一个位置。我要做的是比较两个表的值,因此如果字符串相同,那么键和值可以放在单独的ArrayList中。一个坐标列表,可能一个用于lat,一个用于lon,以简化gps功能,然后是位置列表

代码如下:

    public static void trails(String[] args) {

    Hashtable<Double, String> trailLat = new Hashtable<Double, String>();

    trailLat.put(51.7181283, "Bike Park Wales");
...


    Hashtable<Double, String> trailLon = new Hashtable<Double, String>();

    trailLon.put(-3.3633637, "Bike Park Wales");
...


    if ( trailLat.keys() >= userLatL && trailLat.keys() <= userLatH ) {
        trailLat.values().retainAll(trailLon);
        ArrayList<Item> items = new ArrayList<Item>(trailLat.values());
    }
        ....
公共静态无效跟踪(字符串[]args){
Hashtable trailLat=新的Hashtable();
trailLat.put(51.7181283,“威尔士自行车公园”);
...
Hashtable trailLon=新的Hashtable();
trailLon.put(-3.3633637,“威尔士自行车公园”);
...

如果(trailLat.keys()>=userLatL&&trailLat.keys(),我会使用这种方法

class Trail{
    String name;
    double lat,lon;
}

double LAT_MIN, LAT_MAX, LON_MIN, LON_MAX;
List<Trail> trails = new ArrayList<Trail>();
//populate trails from db or whatever

List<Trail> goodTrails = new ArrayList<Trail>();
for(Trail trail : trails){
    if(trail.lat > LAT_MIN && trail.lat < LAT_MAX && trail.lon > LON_MIN && trail.lon < LON_MAX ){
        goodTrails.add(trail);
    }
}
类跟踪{
字符串名;
双lat,lon;
}
双拉脱最小值、拉脱最大值、拉脱最小值、拉脱最大值;
List trails=new ArrayList();
//从db或任何东西填充轨迹
List goodTrails=new ArrayList();
用于(轨迹:轨迹){
如果(trail.lat>lat_-MIN&&trail.latlon_-MIN&&trail.lon
即使你看到的是20英里的半径,如果半径变大,你也必须考虑地球的球形

此外,您还需要一些更好的结构,而不是键为lon/lat值的2个哈希映射。您可以使用一个简单的表来存储所有点(在数据库中或作为对象列表)

我不想使用别人的作品,这里解释了一切:


祝你好运。

trailLat.keys()>=这是什么魔法?.还有,为什么
HashTable
?我把它放进去是因为我想了解我想在那里做的事情,我并不想让它成为代码的真正形式。整个部分可能真的很混乱,我对此表示歉意,请发布编译的代码。如果你有一组带有坐标的项目,并且想要过滤在特定边界内的(maxLat、minLat、maxLon、minLon)这是一种错误的方法。哦,那部分是可以编译的!但它并不是我想要它做的。而且,我认为哈希表是最好的方法???@fustaki好的,你推荐什么方法???谢谢你的时间,伙计!但我有点困惑。首先,代码没有正确编译,之前有个问题第二个列表…?第二,我应该如何在trails ArrayList中建立trails列表?