Java项目

时间:2016-03-22 22:41:16

标签: java

我已经编写了以下代码来解决问题1,它只是简单地计算出1000以下3和5的所有倍数的总和。(我意识到我不需要构造函数,我只是包含它练习)。

public class p1multiplesOf3and5 {

public p1multiplesOf3and5() {
    //Constructor

}

public int sumArray(int[] Array){
    int sum = 0;
    for (int item: Array) {
        sum += item;
    }
    return sum;
}

public int sumMultiples3and5(int limit) {

    int[] multiples = new int[limit];
    int count = 0;

    for (int i=1; i<limit; i++){
        if (i%3==0 || i%5==0) {
            count++;
            multiples[count] = i;
        }
    }

    int total = sumArray(multiples);

    return total;


}

public static void main(String args[]) {

    p1multiplesOf3and5 x = new p1multiplesOf3and5();

    int t = x.sumMultiples3and5(1000);

    System.out.println("Total is: " + t);



}

}

我的问题是基于我创建和使用的sumArray方法。我有一个使用MATLAB的背景,在某些项目中,我已经创建了一个+ tools文件夹,并将其保存为该文件夹中的一个函数。任何时候我想使用它我都可以编写tools.sumArray()来调用它。

在Java中是否有类似的过程?我觉得这是一种我可以在别处使用的方法,可以方便地访问它,以及我创建的任何其他方法。

1 个答案:

答案 0 :(得分:1)

基本上你想创建一个包含sumArray()的实用程序类。如果您只在一个项目中使用它,您可以创建一个名为Utils的类,并添加一个静态方法:

public class Utils {

    public static int sumArray(int[] Array){
        int sum = 0;
        for (int item: Array) {
            sum += item;
        }
        return sum;
    }  

}

以便您稍后可以通过以下方式使用它:

int[] myArray = {1,2,3,4,5};
int sum = Utils.sumArray(myArray);

但是jdk 8已经有了类似的东西,所以你可以避免重新发明轮子:

Arrays.stream(myArray).sum();