【问题标题】:How to store the data in the following structure?如何将数据存储在以下结构中?
【发布时间】:2013-07-28 17:49:09
【问题描述】:
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来存储它吗?存储商店列表后如何参考?谢谢。

【问题讨论】:

    标签: java arrays multidimensional-array arraylist hashmap


    【解决方案1】:

    在高层次上,类似 trie 的东西很适合。

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

    方法一:

    Region
     List<area>
        List<shops>
    

    这将使您的检索/插入和删除变得非常痛苦。但从好的方面来说,它足够简单,易于理解和迭代。

    方法二:

    2 个地图:Region -&gt; List&lt;area&gt;Area -&gt; List&lt;shops&gt;

    表现优于第一名。

    方法3:

    单张地图:Region+Area -&gt; List&lt;shops&gt;。可能有太多的键,具体取决于区域和面积数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多