Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android反向整数数组_Java_Android_Json_Reverse - Fatal编程技术网

Java android反向整数数组

Java android反向整数数组,java,android,json,reverse,Java,Android,Json,Reverse,我已经使用下面的函数成功地将JSONArray解析为list public List<Integer> ParseJson(String json, List<Integer> myList) { JSONArray jsonArray = null; try { JSONObject mainJson = new JSONObject(json); jsonArray = mainJson.getJSONArray("r

我已经使用下面的函数成功地将JSONArray解析为list

public List<Integer> ParseJson(String json, List<Integer> myList) {
    JSONArray jsonArray = null;

    try {
        JSONObject mainJson = new JSONObject(json);
        jsonArray = mainJson.getJSONArray("result");

        myList = new ArrayList<Integer>();
        for (int i = 0; i < jsonArray.length(); i++) {

            myList.add(Integer.parseInt(jsonArray.get(i).toString()));

        }

        // System.out.println(myList);

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

    Collections.reverse(myList);
    return myList;

}
现在我需要将列表按相反顺序排列。优化的方法是什么?

[1,2,3,5,23534,23]:您的JSONArray已经包含int,无需转换

JSONArray jsonarray = getTheJSONArrayFromSomewhere();
Log.d(TAG, jsonarray.toString(4)); // for debugging purposes. Check the contents of the jsonarray
List<Integer> list = new ArrayList<Integer>();
for (int i = jsonarray.length() - 1; i >= 0; i--)
    list.add(jsonarray.getInt(i));
还是这个

JSONArray jsonarray = getTheJSONArrayFromSomewhere();
Log.d(TAG, jsonarray.toString(4)); // for debugging purposes. Check the contents of the jsonarray
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < jsonarray.length(); i++)
    list.add(jsonarray.getInt(i));
Collections.reverse(list);

假设JSONArray已正确填充并包含整数,则会反转整数列表。另外,我省略了try/catch,您必须添加它们。

在编辑问题之前,您似乎想反转JSON数组,将其附加到myList并返回结果。如果这是真的,请尝试以下方法:

public List<Integer> ParseJson(String json, List<Integer> myList) {
    JSONArray jsonArray = null;

    try {
        JSONObject mainJson = new JSONObject(json);
        jsonArray = mainJson.getJSONArray("result");

        List<Integer> reverseListFromJson = new ArrayList<Integer>();
        for (int i = 0; i < jsonArray.length(); i++) {
            reverseListFromJson.add(jsonArray.getInt(i));
        }
        Collections.reverse(reverseListFromJson);

        myList.addAll(reverseListFromJson);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    return myList;
}
您是否尝试过使用:

ArrayList<Element> tempElements = new ArrayList<Element>(mElements);
Collections.reverse(tempElements);

使用下面的代码执行此操作

ArrayList<Element> tempElements = new ArrayList<Element>(mElements);
Collections.reverse(tempElements);

希望它对您有用

更准确地说,您想将反向json数组放入您的int数组吗?Collections.reverseemyList;对于int i=jsonArray.length-1;i>=0;i-@Wildcupper是的,你是对的@Alexey Odintsov我也试过了,但没有任何想法改变。我不清楚你从int数组开始是什么意思,或者为什么你有一个myList参数,因为你没有使用传递的值。另外,如果您的JSON已经包含整数,您不必将它们转换为字符串然后再转换回来。。。为什么不使用getInt?基本上这个问题现在回答起来太混乱了。看,先生,我尝试了你的代码,我记录了我的jsonarray,结果是这样的,但我仍然无法反转这个数组,我记录了我的jsonarray,结果是这样,但我仍然无法反转记录你的JSON数组显示了非反转列表!但是返回值是按您需要的顺序排列的,这应该是唯一重要的事情。既然你接受了我的回答,我想你同意了吧?