我正在尝试编写一些代码,它接收任意数量的条目,并在给定特定条件的情况下将其存储在ArrayList
中。我无法做的是找到ArrayList
中存储的值的平均值。这是迄今为止编写的代码:
import java.util.ArrayList;
import java.util.Scanner;
public class App {
private ArrayList<Integer> temp;
private int t;
private int count = 0;
public void main() {
Scanner input = new Scanner(System.in);
temp = new ArrayList<>();
System.out.println("Enter temperatures: ");
do {
t = input.nextInt();
if (t == -99) {
System.out.println("Program Terminating..");
break;
} else {
temp.add(t);
}
} while (t != -99);
for (int i = 0; i < temp.size(); i++) {
if (temp.get(i) > 40) {
count++;
}
}
System.out.println(count);
}
}
答案 0 :(得分:2)
你那里有一个时髦的条件;如果值大于40,您只会进行操作。下面的代码将这些考虑在内;如果你不想要,那就删除条件。
以传统方式,您可以使用带计数器的增强型for来获取大于40的所有值并将其平均值...
double sum = 0;
for(Integer i : temp) {
if(i > 40) {
sum += i;
count++;
}
}
if(count != 0) { // avoid divide-by-zero error here
System.out.println(sum / count);
}
...或者使用Java 8,您可以使用流,过滤掉小于40的流,然后将平均值变为双倍:
System.out.println(temp.stream()
.filter(x -> x > 40)
.mapToInt(Integer::intValue)
.average()
.getAsDouble());
答案 1 :(得分:0)
function(LeaveTypeSelectedIndex,chk)
{
if(LeaveTypeSelectedIndex==0)
{
chk..checked = false;
}
}