我正在尝试摆脱温度的 Arraylist 并仅使用数组。我还想要一种比我正在做的更简单的打印数组的方法。该代码按原样运行。我正在寻找一种更简单的方法。
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
ArrayList<Double> temperatures = new ArrayList<>();
String[] days = new String[7];
days[0] = "Monday";
days[1] = "Tuesday";
days[2] = "Wednesday";
days[3] = "Thursday";
days[4] = "Friday";
days[5] = "Saturday";
days[6] = "Sunday";
for (String day : days) {
System.out.println("Enter the temperature for: " + day);
double temp = scnr.nextDouble();
temperatures.add(temp);
}
double sum = 0.0;
for ( int i = 0; i < temperatures.size(); i++) {
sum += temperatures.get(i);
}
double average = (double) sum / temperatures.size();
System.out.print("You entered: ");
System.out.print(temperatures.get(0));
System.out.println(" for " + days[0]);
System.out.printf("The average temperature for the week is: %.2f", average);
scnr.close();
return;
}
}
最佳答案
如果您对 java 8+ 方法感兴趣,(这更可爱:-D);对此有一点尝试。我们正在使用流 API 来执行此操作,您只需很少的代码即可对数组执行更多操作,
String[] days = { "Monday", "Tuesday", "Wednesday", "Thursday","Friday", "Saturday", "Sunday" };
ArrayList<Double> temperatures = new ArrayList<>();
Arrays.stream(days).forEach(day -> {
System.out.println("Enter the temperature for: " + day);
double temp = scnr.nextDouble();
temperatures.add(temp);
});
double average = temperatures.stream().reduce(Double::sum).get() / temperatures.size();
System.out.printf("The average temperature for the week is: %.2f", average);
关于java - 简化 Java 数组和数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46997158/