gpt4 book ai didi

java - 将数据存储到 hashmap

转载 作者:行者123 更新时间:2023-11-30 03:14:45 25 4
gpt4 key购买 nike

我有点不知所措,需要您的建议。

我正在使用 JSON 从数据库中获取一些字符串并将它们存储到 hashmap,我无法找到正确存储父项和子项的方法。

// looping through All JSON array
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);

// Storing each json item in variable

String city = c.getString(TAG_CITY);
String street = c.getString(TAG_STREET);



HashMap<String, List<String>> ExpListData = new HashMap<String, List<String>>();
ExpListData.put(key, value)



}

我想不出将所有街道地址存储到不同城市的方法。我知道我可以创建一个 List<String>对于一个城市的每条街道,但这不是一个选项,因为数据库可能有我不知道的城市

最佳答案

你的 ExpListData在每个 for 循环中被丢弃。如果您想要一张以城市为键并将该城市的所有街道作为值的 map ,请使用如下内容:

// looping through All JSON array
HashMap<String, List<String>> ExpListData = new HashMap<String, List<String>>();
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);

// Storing each json item in variable
String city = c.getString(TAG_CITY);
String street = c.getString(TAG_STREET);

List<String> streets = ExpListData.get(key);
if (streets == null) {
streets = new ArrayList<String>();
ExpListData.put(key, streets);
}
streets.add(value);
}

ExpListData将包含一张以每个城市为键的 map 。该值将是与该城市关联的所有街道的列表。

List<String> streets = ExpListData.get(key);获取实际城市的已输入街道。这是必要的,否则键的值每次都会被覆盖,并且不会与预先存在的值结合。

如果有可能,对于一个城市,您可以使用一条街道 2 次,您可以使用 HashSet<String>而不是 ArrayList<String> .同时标准化城市名称(即 toLowerCase().trim() 可能是获得所需结果所必需的(取决于您的数据)。请记住,城市名称不是唯一的(即我认为在美国有不止一个斯普林菲尔德) . 因此,最好结合使用城市和邮政编码。

关于java - 将数据存储到 hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20314099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com