【问题标题】:Externally store tools in Java project在 Java 项目中外部存储工具
【发布时间】:2016-03-23 09:31:24
【问题描述】:

我编写了以下代码来解决问题 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 中是否有类似的过程?因为我觉得这是一种我可能会在其他地方使用的方法,并且可以方便地访问它以及我创建的任何其他方法。

【问题讨论】:

  • 也许您正在寻找一个 Java 库? stackoverflow.com/questions/3612567/…
  • IntStream.range(0, 1000).filter(i -&gt; i % 3 == 0 || i % 5 == 0).sum();
  • @AndrewTobilko 请注意 project-euler 标记是 burned。我还删除了 [static] 标签;标签应该是关于的问题,而不是它包含的内容。

标签: java


【解决方案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();

【讨论】:

  • 这正是我所追求的,谢谢。我确实认为这样一个简单的方法一定已经存在,更多的是关于创建它并试图弄清楚如何在以后将它作为函数调用它的实践。感谢您的帮助和如此迅速的回复!
猜你喜欢
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多