gpt4 book ai didi

java - 使用 JSON 插入排序时遇到问题

转载 作者:行者123 更新时间:2023-12-01 08:52:49 27 4
gpt4 key购买 nike

public class ReverseList extends HttpServlet {

public static void sort(int arr[]) {
int N = arr.length;
int i, j, temp;
for (i = 1; i< N; i++) {
j = i;
temp = arr[i];
while (j > 0 && temp < arr[j-1]) {
arr[j] = arr[j-1];
j = j-1;
}
arr[j] = temp;
}
}

private void doService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String jsonStr = "";
if(br != null){
jsonStr = br.readLine();
}
StringReader strReader = new StringReader(jsonStr);
JsonReader reader = Json.createReader(strReader);
JsonObject obj = reader.readObject();
JsonArray inArray = obj.getJsonArray("inList");
int data [];
for (int i = 0; i > inArray.size(); i++) {
data = new int[inArray.getInt(i)];
}
long startTime = System.currentTimeMillis();
this.sort(data);
long stopTime = System.currentTimeMillis();
long elapsedTime = stopTime - startTime;
JsonArrayBuilder outArrayBuilder = Json.createArrayBuilder();
for(int i = 0; i<data.length; i++) {
outArrayBuilder.add(data[i]);
}
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.println("{ \"outList\" : " + outArrayBuilder.build().toString()+"\n");
out.println("algorithim: Insertion Sort\n Execution time:"+ elapsedTime+"}");
}
}

我正在尝试将 JSON 数组转换为 int[],对 int[] 进行排序,然后将其输出为 JSON 以及执行排序所需的时间。我收到的错误是 NullPointerException。

 java.lang.NullPointerException   
csi403.ReverseList.sort(ReverseList.java:23)
csi403.ReverseList.doService(ReverseList.java:99)
csi403.ReverseList.doPost(ReverseList.java:44)

这是我第一次使用 servlet,我没有有效的方法来纠正和编译错误。我正在使用 Amazon Web Services-Elastic Beanstalk、Postman 和 Maven 的组合来创建 HTTP 端点。所以,问题是双重的。为什么我会遇到这个错误?并且,是否有更简单的方法来编译此代码并进行更正。我听说过一个名为 cURL 的工具,但我不确定它与我现在所做的有什么不同。如有任何帮助,我们将不胜感激!

最佳答案

在排序之前创建和填充数组的方式可能接近于:

int[] data = new int[inArray.size()];
for( int i = 0; i < inArray.size(); i++) {
data[i] = inArray.getInt( i );
}

要对数组进行排序,您可以使用 java.util.Arrays.sort .

Arrays.sort( data, Collections.reverseOrder());

对于 NPE:条件 i > inArray.size() 始终为 false,因此数组保持为空,并且在 sort() arr. length; 抛出 NPE。

关于java - 使用 JSON 插入排序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42275772/

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