如何在以下结构中存储数据?

时间:2013-07-29 03:18:52

标签: java arrays multidimensional-array arraylist hashmap

try {
    regions = json.getJSONArray(TAG_REGIONS);
    for (int i = 0; i < regions.length(); i++) {
        JSONObject c = regions.getJSONObject(i);
        String regionName = c.getString(TAG_REGION_NAME);
        areas = json.getJSONArray(TAG_AREA);
        for (int j = 0; j < areas.length(); j++) {
            JSONObject d = areas.getJSONObject(j);
            String areaName = d.getString(TAG_AREA_NAME);
            shops = json.getJSONArray(TAG_SHOP);
            for (int k = 0; k < shops.length(); k++) {
                JSONObject e = shops.getJSONObject(k);
                String id = e.getString(TAG_ID);
                String shopName = e.getString(TAG_SHOP_NAME);
                String shopNameForGoogle = e.getString(TAG_SHOP_NAME_GOOGLE);
                String img = e.getString(TAG_IMAGE);
                String address = e.getString(TAG_ADDRESS);
                String tel = e.getString(TAG_TEL);
                String hrs = e.getString(TAG_HRS);
                String lat = e.getString(TAG_LAT);
                String lng = e.getString(TAG_LNG);
            }
        }
    }
} catch (JSONException e) {
    e.printStackTrace();
}

以上是从json文件收集的数据。结构是

regions
->areas
->shops

我应该使用arrayList来存储它吗?我存储商店列表后如何参考?感谢。

1 个答案:

答案 0 :(得分:1)

在较高的层面上,像trie这样的东西适合。

在代码中,一些基本方法如下:

方法1:

Region
 List<area>
    List<shops>

这将使您的检索/插入和删除成为一种真正的痛苦。但从好的方面来说,它很容易理解和迭代。

方法2:

2张地图:Region -> List<area>Area -> List<shops>

表现优于第一名。

方法3:

单张地图:Region+Area -> List<shops>。可以有太多的键,具体取决于区域和区域数。