gpt4 book ai didi

java - getJSONObject 和 getJSONArray 方法的复杂性是什么?

转载 作者:行者123 更新时间:2023-12-04 21:27:57 25 4
gpt4 key购买 nike

我正在使用 org.json库作为我的 Java 应用程序的 JSON 客户端,我想知道这个库中一些方法的复杂性。

我正在通过它的 HTTP API 从数据库中检索另一个 JSON 对象(等等)内的 JSON 数组内的数千个 JSON 对象。作为示例(仅作为示例,我的情况要复杂得多),假设我正在做类似的事情:

// Ignoring attributes types
import org.json.*;

public static void main(String[] args) {
response = MyHTTPClient.post(url, query).asJSON();
response = JSON.parse(response);
data = response.getJSONObject(1).getJSONArray("results").getJSONObject(0);
}

来自 org.jsongetJSONObject(int)getJSONArray(String) 方法的复杂性是什么?图书馆?它是以恒定 [O(1)] 还是线性 [O(n)] 时间运行的?如果没有,正确答案是什么?

最佳答案

当您从字符串(或 JSONTokener)实例化 JSONObject 时,

org.json 将解析整个 JSON 文档。 getJSONObject()getJSONArray() 方法只是非类型化 get() 方法的类型化版本(返回 Object实例)。如果您查看源代码,您会发现 JSONObject 使用 HashMapJSONArray 使用 ArrayList 进行内部表示,因此执行时间接近于常数 (O(1))

关于java - getJSONObject 和 getJSONArray 方法的复杂性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33392759/

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