1

我有一组数据要存储在一个简单的变量中。基本上是带有位置坐标的十五个名称的列表。在 Python 中,我会创建一个字典,例如:

locations = {'Location1': [lat1, lon1], 'Location2': [lat2, lon2], ...}

这样我以后可以通过使用位置名称作为键来调用坐标:

coords = locations['Location1']

有什么等价于在 Java 中执行此操作?我基本上想在我的代码中将这些位置定义为常量。

在收到第一个非常快速的回复后进行编辑:

我现在添加了这个:

private class coordinates {
    private Long lat;
    private Long lon;
    public Long getLat() {
        return lat;
    }
    public void setLat(Long lat) {
        this.lat = lat;
    }
    public Long getLon() {
        return lon;
    }
    public void setLon(Long lon) {
        this.lon = lon;
    }
}

private final static Map<String, coordinates> LOCATIONS;

最后一行当然是不完整的;我不知道如何填充这个东西,而不使用额外的临时变量来访问两个设置器,导致每组值都有几行代码。

4

3 回答 3

3

您可以在 java 中使用Map

像: Map<LocationObject, CoordinateObject>

在哪里CoordinateObject has latitude and longitude as attributes

class CoordinateObject {
   //longitude;
   //latitude;
}
于 2013-03-13T16:43:33.587 回答
3

在 Java 中,正确的数据结构是Map

于 2013-03-13T16:43:39.743 回答
0

我想我通过在 StackOverflow 上调整其他一些答案找到了一个更方便的解决方案,而不必创建一个单独的对象(并意识到我使用了错误的类型):

private final static Map<String, Double[]> LOCATIONS;
static
{
    LOCATIONS = new Map<String, Double[]>();
    LOCATIONS.put("Central_Western", new Double[] {22.288262, 114.140138});
    LOCATIONS.put("Eastern", new Double[] {22.286078, 114.216957});
}

现在我应该能够调用Double[] loc = LOCATIONS["Central_Western"]并拥有一个包含两个数字的数组。

好的,还没有测试过……在 Java/Android 中尝试这么小的事情太难了……我非常想念 Python 的控制台……

于 2013-03-13T17:25:32.070 回答