gpt4 book ai didi

java - ArrayList 组项目

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:00 26 4
gpt4 key购买 nike

我有一个简单的 json 文件

{"name":"item1",
"category":"work",
"id":1},
{"name":"item2",
"category":"work",
"id":2},
{"name":"item3",
"category":"work",
"id":3}
{"name":"item4",
"category":"home",
"id":4}

转换为ArrayList,我想按类别对项目进行分组,如下面的 TreeView

工作-项目1-项目2-项目3

首页-项目4

有什么想法吗?

    private List<Item> item = new ArrayList<Item>();

try {

JSONObject responseObject = new JSONObject(response);
JSONObject itemsObject = responseObject.getJSONObject("items");

Iterator<?> keysIterator = itemsObject.keys();

while(keysIterator.hasNext()) {
String keyString = (String)keysIterator.next();
JSONObject coupon = couponsObject.getJSONObject(keyString);

Item item = new Item();
item.setName(item.getString("name"));
item.setCategory(item.getString("category"));
item.setID(item.getString("id"));
itemList.add(item);
}

} catch (Exception e) {
e.printStackTrace();
}

adapter.notifyDataSetChanged();

最佳答案

正如@Luiggi建议的那样,使用Map map 将反射(reflect)您的 TreeView 结构。

您需要做的就是稍微更改一下代码,而不是 List定义 map

Map> items = new HashMap<>();

其他更改在您的 while loop 中您在哪里创建项目

     Item item = new Item();
item.setName(item.getString("name"));
item.setCategory(item.getString("category"));
item.setID(item.getString("id"));

List<Item> itemList= items.get(item.getCategotry());
if (itemList ==null){
itemList = new ArrayList<>();
items.put(item.getCategotry(),itemList);
}
itemList.add(item);

关于java - ArrayList 组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26868067/

26 4 0