0
所以我在这里有一些代码,我试图优化,我无法弄清楚如何使它至少成为for:each循环。有没有我可以使用的某种迭代器,可以让我为迭代器中的每个项目执行操作?任何帮助将不胜感激。Android:从JSONArray获取元素而不使用标准for循环
public static ArrayList<Community> parseRelatedCommunities(String response) throws JSONException {
ArrayList<Community> relCommunities = new ArrayList<Community>();
Log.d(TAG, "parseRelatedCommunities:");
try {
Gson gson = new Gson();
int size;
JSONObject responseObj = new JSONObject(response);
responseObj = responseObj.getJSONObject(JSON_RESPONSE);
JSONArray communitiesArray = responseObj.getJSONArray(JSON_COMMUNITY);
Log.d(TAG, "parsing communities: " + communitiesArray.toString());
size = communitiesArray.length();
//this needs to change
for(int i=0; i<size; i++) {
JSONObject json = communitiesArray.getJSONObject(i);
relCommunities.add(gson.fromJson(json.toString(), Community.class));}
gson = null;
}
catch (JSONException e)
{
Log.d(TAG, "JSON Parse Related Communities error: " + e.getStackTrace().toString());
}
finally
{
if(relCommunities.size() <= 0)
{
Community noCommunities = new Community();
noCommunities.name = "No Available Communities";
relCommunities.add(noCommunities);
}
}
return relCommunities;
}
}
为什么你需要优化它这么多?我会想,如果有任何东西从for循环中拉出JSONObject json(然后你只有一个内存分配)比尝试优化for循环更好的开始 – panini