Java - Добавление определенных индексов из массива с использованием геттеров - PullRequest
0 голосов
/ 26 августа 2018

новый Java-разработчик, поэтому, пожалуйста, потерпите меня.

В настоящее время я создаю базовую программу, которая будет принимать пользовательские данные и сохранять их в списке массивов.В списке массивов есть несколько журналов поддержки, и я пытаюсь вычислить общую сумму часов, потраченных на все записи в журнале поддержки.

Это мой список массивов и записей:

import java.util.Scanner;
import java.util.ArrayList;

public class Main {

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);


    ArrayList<User> listOfUsers = new ArrayList<>();
    ArrayList<Customer> listOfCustomers = new ArrayList<>();
    ArrayList<Logs> listOfLogs = new ArrayList<>();


    listOfUsers.add(new User("janedoe@gmail.com", "Jane Doe", "testABC"));

    listOfLogs.add(new Logs(11, 24, 05, 2018, 3, 280.04));
    listofLogs.add(new Logs(12, 12, 09, 2018, 4, 290.11));

пятое значение в списке - часы (3 и 4 соответственно).

Это то, что я пробовал в данный момент, но это не сработало:

if (menuOption == 5) {

    double sum = 0;
    for(int i = 0; i < l.getHours(); i++)
    sum += l.get(i);
    return sum;

}

мой геттерследующим образом:

public int getHours() {
    return this.hours;
}

Я буду признателен за любую поддержку, заранее спасибо.

РЕДАКТИРОВАТЬ: Таким образом, после того, как некоторые ответы были опубликованы, мне удалось перебрать списки и получить значениячасов следующим образом:

  if (menuOption == 5) {

    for(Logs aLog : listOfLogs) {

        double sum = 0;

        sum += aLog.getHours();

        System.out.println(sum);      
    }
  }

Я получаю следующий вывод:

3.0
4.0

Как добавить значения, чтобы они отображались как "7.0"?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Держите сумму за пределами цикла.Это позволит ему быть обновленным.Если он остается внутри цикла, он всегда будет сбрасываться на каждой итерации:

if (menuOption == 5) {
  double sum = 0;
  for(Logs aLog : listOfLogs) {
      sum += aLog.getHours();   
  }
}
0 голосов
/ 26 августа 2018

Вы можете попробовать это:

if (menuOption == 5) {

                        double sum = 0;
                        for(int i = 0; i < listOfLogs.size() ; i++){
                        sum += listOfLogs.get(i).getHours();
                        }
                        return sum;

                    }

Изменения сделаны:

В цикле for i<(size of the listOfLogs List), который содержит объект Logs.Затем вам нужно пройтись по каждому экземпляру Logs, получить часы и добавить их к сумме.

...