对arraylist android中特定键的所有值求和

对arraylist android中特定键的所有值求和,android,arraylist,Android,Arraylist,我有一个arraylist ArrayList<HashMap<String, String>> arraylist; ArrayList ArrayList; 我将json数据添加到此arraylist中,以便稍后使用以下格式的hashmap填充到listview中 int ja=jsonarray.length(); for (int i = 0; i <= ja; i++) {

我有一个arraylist

 ArrayList<HashMap<String, String>> arraylist;
ArrayList ArrayList;
我将json数据添加到此arraylist中,以便稍后使用以下格式的hashmap填充到listview中

                   int ja=jsonarray.length();

            for (int i = 0; i <= ja; i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);
                // Retrive JSON Objects

                map.put("slno", jsonobject.getString("slno"));
                map.put("mark", jsonobject.getString("mark"));


                // Set the JSON Objects into the array
                arraylist.add(map);

            }
intja=jsonarray.length();

对于(inti=0;i这可能不是最好的方法,但它肯定会为您提供解决方案

try{
   int sum = 0;
   for(HashMap<String, String> map : arrayList) {
      sum += Integer.parseInt(map.get("mark"));
   }
} catch (Exception e) {
   //Manage your exception
}
// sum has the value for the marks total.
System.out.println("Total Marks: "+sum);
试试看{
整数和=0;
for(HashMap映射:arrayList){
sum+=Integer.parseInt(map.get(“mark”));
}
}捕获(例外e){
//管理您的异常
}
//sum具有总分的值。
System.out.println(“总分:+sum”);

我认为您只需要浏览
数组列表
并从中找到“mark”键 您的
HashMap
并将其添加到总和中

    int nTotalSum = 0;

    try
    {

      for( int i =0; i < arraylist.size(); i++ )
      {
        HashMap<String, String> map = arraylist.get(i);
        String sValue;
        if ( (sValue=map.get("mark")) != null)
        {
          nTotalSum += Integer.parseInt(sValue);
        }
      }
    }
    catch (Exception e)
    {
    }
    System.out.println("Total Mark: " + nTotalSum);
int ntotatasum=0;
尝试
{
对于(int i=0;i
我得到的是0作为输出。请在您的问题中发布完整的代码。您还可以检查您是否得到JSON中标记的值吗?我得到的是标记的值..我应该在arrayadapter中使用您的解决方案还是在postexecute中使用?抱歉!!!它起作用了。由于浮点数的原因,它可能没有显示所需的结果..thaNKS我应该在postexecute或arrayadapter中使用它吗?你也可以使用它。这实际上取决于你的ArrayList的大小。如果它小于100,那么你可以将它放在任何地方,但是如果你要处理数千个这样的条目,那么一个线程或在doInBackground中可能是一个不错的选择。