Java - 使用 getters 从 arraylist 添加特定索引
Java - Adding specific indexes from arraylist using getters
这里是新 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;
}
我的getter如下:
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”?
你可以试试这个:
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 实例并获取小时数并将其添加到总和。
将总和保留在循环之外。这将允许它被更新。如果它保留在循环内,它将始终在每次迭代时重置:
if (menuOption == 5) {
double sum = 0;
for(Logs aLog : listOfLogs) {
sum += aLog.getHours();
}
}
这里是新 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;
}
我的getter如下:
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”?
你可以试试这个:
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 实例并获取小时数并将其添加到总和。
将总和保留在循环之外。这将允许它被更新。如果它保留在循环内,它将始终在每次迭代时重置:
if (menuOption == 5) {
double sum = 0;
for(Logs aLog : listOfLogs) {
sum += aLog.getHours();
}
}