Java ArrayList中元素的平均值 public static int averageInArrayList(ArrayList ArrayList){ 整数和=0; 如果(!ArrayList.isEmpty()){ for(整数和:ArrayList){ sum+=数组列表; } double total=sum.doubleValue()/ArrayList.size(); } 返回总数; }
嗨,我很难返回Arraylist中所有元素的平均值Java ArrayList中元素的平均值 public static int averageInArrayList(ArrayList ArrayList){ 整数和=0; 如果(!ArrayList.isEmpty()){ for(整数和:ArrayList){ sum+=数组列表; } double total=sum.doubleValue()/ArrayList.size(); } 返回总数; },java,Java,嗨,我很难返回Arraylist中所有元素的平均值 (也不太确定我的第一行是否正确)您必须声明双倍总计超出条件范围,否则它将不可用。把它放在总和下一行。此外,由于您不再返回int专用双精度计算范围(列表标记),因此必须将返回类型更改为double{ public static int averageInArrayList(ArrayList <Integer> arrayList) { Integer sum = 0; if(!ArrayList.isEmpty())
(也不太确定我的第一行是否正确)您必须声明
双倍总计
超出条件范围,否则它将不可用。把它放在总和下一行。此外,由于您不再返回int
专用双精度计算范围(列表标记),因此必须将返回类型更改为double
{
public static int averageInArrayList(ArrayList <Integer> arrayList) {
Integer sum = 0;
if(!ArrayList.isEmpty()) {
for (Integer sum : ArrayList) {
sum += ArrayList;
}
double total = sum.doubleValue() / ArrayList.size();
}
return total;
}
整数和=0;
如果(!marks.isEmpty()){
用于(整数标记:标记){
总和+=分数;
}
返回sum.doubleValue()/marks.size();
}
回报金额;
}
Java8
private double calculateAverage(List <Integer> marks) {
Integer sum = 0;
if(!marks.isEmpty()) {
for (Integer mark : marks) {
sum += mark;
}
return sum.doubleValue() / marks.size();
}
return sum;
}
公共静态双重计算权限(列表){
返回列表
.stream()
.mapToInt(编号->编号)
.average().getAsDouble();
}
为什么不使用lambda方法
public static double calculateAverage(List<Integer> list) {
return list
.stream()
.mapToInt(number -> number)
.average().getAsDouble();
}
List testList=Arrays.asList(1,2,3,4,5,6,7,8,9,10);
double-intAverage=testList.stream()
.mapToInt(整数::intValue)
.average()
.orElse(0.0);
系统输出打印项次(平均值);
作为一种方法:
List<Integer> testList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
double intAverage = testList.stream()
.mapToInt(Integer::intValue)
.average()
.orElse(0.0);
System.out.println(intAverage);
publicstaticdoubleaveragelist(列表testList){
返回testList.stream()
.mapToInt(整数::intValue)
.average()
.orElse(0.0);
}
只要换三行就行了
public static double averageList(List<Integer> testList) {
return testList.stream()
.mapToInt(Integer::intValue)
.average()
.orElse(0.0);
}
publicstaticdoubleaverageinaraylist(List-ArrayList){//第1行
整数和=0;
如果(!ArrayList.isEmpty()){
对于(整型元素:ArrayList){//第2行
sum+=元素;//第3行
}
double total=sum.doubleValue()/ArrayList.size();
}
返回总数;
}
只需将您的返回类型更改为Double(平均值不是整数),然后将您的流更改为DoubleStream即可进行有效计算:
public static double averageInArrayList(List <Integer> ArrayList) { //line 1
Integer sum = 0;
if(!ArrayList.isEmpty()) {
for (Integer element: ArrayList) { //line 2
sum += element; //line 3
}
double total = sum.doubleValue() / ArrayList.size();
}
return total;
}
公共静态双平均数组列表(ArrayList ArrayList){
返回数组列表
.stream()
.mapToDouble(整数::doubleValue)
.average()
.orElse(0.0D);
}
Type将变量total强制转换为int,因为您返回的是int-Type实际上不需要检查arrayList是否为空。您应该始终选择基本类型而不是装箱的基本类型<代码>整数和=0代码>应替换为int sum=0代码>。返回类型应该是double
而不是int
我收到一个错误提示:找不到指向first lineHi@Jamez列表的符号,我将对提问者以及将来可能查看您答案的其他人非常有帮助,解释你的答案,而不仅仅是转储代码。你在说什么?这是我在代码中的一个示例。我将向他展示我的代码中的内容,他可以为他提供代码的结构。我得到一个Arraylist,我必须返回AverageOHH!!呃,当数组为空{}时,另一个测试失败,我需要返回0.00,我如何添加它in@qwert123Fixed指向返回总计-错误找不到符号,我不知道为什么total
超出返回范围。您已在if
块内声明total
并在块外返回它。请修改你的答案。
public static double averageInArrayList(ArrayList <Integer> arrayList) {
return arrayList
.stream()
.mapToDouble(Integer::doubleValue)
.average()
.orElse(0.0D);
}