gpt4 book ai didi

java - 有效地从 JSONArray 中的所有 JSONObject 获取特定键的值?

转载 作者:行者123 更新时间:2023-12-02 09:45:33 26 4
gpt4 key购买 nike

我需要从 JSONArray 中的所有 JSONObject 获取特定键的值(下面的示例)。

我有一个传统的循环方法,我想知道是否有更好的方法来做到这一点。 也许使用流?

private static Collection<? extends String> someMethod(JSONArray jsonArray) {
Set<String> setToReturn = new HashSet<>();
for (int i = 0; i < jsonArray.length(); i++) {
setToReturn.add(jsonArray.getJSONObject(i).getString("key"));
}
return setToReturn;
}

JSON 示例如下:

"someArray": {
"someObject": [
{
"key": "001",
"key1": "value",
"key2": "value",
"key3": "value"
}
],
"someObject2": [
{
"key": "002",
"key1": "value",
"key2": "value",
"key3": "value"
}
],
"someObject3": [
{
"key": "003",
"key1": "value",
"key2": "value",
"key3": "value"
}
],
}

基本上,我需要将每个 JSONObject 中的“键”放入集合或列表中。

Example output: [001, 002, 003]

上面的代码有效,我想知道是否有更好的方法来做到这一点。假设有数千个这样的 JSONObject。我正在使用 org.json 库。

提前致谢。

最佳答案

没有更好的方法可以做到这一点。循环遍历数组的时间复杂度为 O(n),从对象获取值的时间复杂度为 O(1)。显然,您需要访问每个值才能将其添加到列表中,这就是为什么总时间复杂度必须为 O(n)。根据您获得的值,插入列表可能比哈希集稍快,但这是最有效的方法

关于java - 有效地从 JSONArray 中的所有 JSONObject 获取特定键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56693488/

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