如何在for循环中从arraylist获取所有数据总和?

时间:2019-03-14 12:47:34

标签: java

这是代码:

ArrayList<DailyChallengesModelFinal> dailyList = new ArrayList<>();
    int selectedItems = position;
                    Log.d("dbKEY", String.valueOf(exDBKey));
                    int sum = 0;
                    for (int i = selectedItems; i <=0; i++) {


                        int points = dailyList.get(position).getPoints();
                        sum = sum + points;     }

我没有得到想要的结果。

例如,我想得到的数组有50,80和60,那么它应该将数组中的值相加。

5 个答案:

答案 0 :(得分:1)

尝试此代码

  int sum = 0;
    for(int i = 0; i <=dailyList.size(); i++) {
        dailyExerciseID = dailyList.get(i).getDcExerciseId();
        dailyExerciseName = dailyList.get(i).getDcexerciseName();
        points = dailyList.get(i).getPoints();
        sum = sum + points;
    }

答案 1 :(得分:0)

看看这个:

for (int i = selectedItems; i <=0; i++) {

i的起始值为selectedItems,我想这是一个正数。
将循环i <=0增加i时,您为循环停止设置的限制为i++
此for循环将永远不会执行。
更改起点和条件以停止。
如果要遍历整个列表,则:

for (int i = 0; i < dailyList.size(); i++) {

如果要遍历前selectedItems个项目,则:

for (int i = 0; i < selectedItems; i++) {

答案 2 :(得分:0)

这将完成您的工作:

    ArrayList<DailyChallengesModelFinal> dailyList = new ArrayList<>();
    int selectedItems = position;
                    Log.d("dbKEY", String.valueOf(exDBKey));
                    int sum = 0;
                    for (int i = selectedItems; i > 0; i--) 
                    {
                        int points = dailyList.get(i).getPoints();
                        sum += points;     
                    }

答案 3 :(得分:0)

dailyList.subList(position, dailyList.size()).stream().map(DailyChallengesModelFinal::getPoint).reduce((p1, p2) -> p1 + p2).orElse(0);

答案 4 :(得分:-1)

我已经更新了您的代码。请检查一下。

               int sum = 0;
             for (int i = 0; i <dailyList.size(); i++) {

                dailyExerciseID = dailyList.get(position).getDcExerciseId();
                dailyExerciseName = dailyList.get(position).getDcexerciseName();
                sum = sum + dailyList.get(position).getPoints();

              }