Java平均函数

Java平均函数,java,average,Java,Average,我是编程新手,我正试图找出一个简单的平均函数。我写了一个平均3个整数的函数。现在,我希望能够使用任何集合类和任何数字类,并获得平均值。问题是这些类不能使用+或/来获得平均值 因此,我想知道是否有任何变通方法可以使用这两个类 这是我的第一个功能: package refresh; import java.util.*; public class Average { public static void main( String args[]){ int a, b, c; flo

我是编程新手,我正试图找出一个简单的平均函数。我写了一个平均3个整数的函数。现在,我希望能够使用任何集合类和任何数字类,并获得平均值。问题是这些类不能使用+或/来获得平均值

因此,我想知道是否有任何变通方法可以使用这两个类

这是我的第一个功能:

package refresh;
import java.util.*;

public class Average {
public static void main( String args[]){

    int a, b, c;
    float average;
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter First Number");
    a = scanner.nextInt();
    System.out.println("Enter Second Number");
    b = scanner.nextInt();
    System.out.println("Enter Third Number");
    c = scanner.nextInt();
    average = (float)(a+b+c)/3;
    System.out.println("The Average Is "+average );
}
 }
到目前为止,我的问题是:

package refresh;
import java.util.*;

public class Average {
public static void main( String args[]){

    Collection numbers;
    Number count;
    Number  average;

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter Numbers to be averaged");
    numbers = (Collection) scanner.match();
    count++;
    average = numbers/count;
    System.out.println("The Average Is "+average);
}
}

任何帮助都会很好!谢谢你的时间

如果您不知道要将字符串转换为什么类型的数字,那么将字符串转换为数字(扫描器就是这样做的)是没有意义的

几乎任何数字都可以表示为双精度。如果需要任意精度,请使用BigDecimal


平均代码可以在数字接口上完全通用;只需使用doubleValue方法。如果您需要BigDecimal,那么它就更复杂了,您可能需要做一些涉及instanceof的事情。

不幸的是,使用+和/,没有很好的方法来解决这个问题。最好的方法可能是使用方法
plus
divide
传递对象,这两种方法封装了特定数字类型的+和/逻辑。如果使用double(Scanner.nextDouble),则覆盖所有数字。至于+和/,Adam已经建议您使用具有合适名称的方法。