我已经编写了以下代码来解决问题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中是否有类似的过程?我觉得这是一种我可以在别处使用的方法,可以方便地访问它,以及我创建的任何其他方法。
答案 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();