在java中存储数据集,如python的dict

时间:2013-03-13 16:41:47

标签: java android multidimensional-array

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

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;

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

3 个答案:

答案 0 :(得分:3)

您可以使用Map in java

赞:Map<LocationObject, CoordinateObject>

CoordinateObject has latitude and longitude as attributes

class CoordinateObject {
   //longitude;
   //latitude;
}

答案 1 :(得分:3)

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

答案 2 :(得分: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的控制台......