java - 我怎样才能使它更有效率?

标签 java performance iteration

我的程序根据整数输入的比较给出一个字符串答案。是否有更有效的方法来执行此操作,而不是分别提示用户 3 次并分别调用 numberVerify 3 次?我该怎么做?对 Java 非常陌生。

public static void main(String[] args) {
    // TODO code application logic here
    // declare variables
    int number=0;
    System.out.println("Enter the first integer: ");
    int number1 = numberVerify(number);
    System.out.println("Enter the second integer: ");
    int number2 = numberVerify(number);
    System.out.println("Enter the third integer: ");
    int number3 = numberVerify(number);
    String compare = comparison(number1, number2, number3);
    printer(compare);
}
public static int numberVerify(int number){
    Scanner in = new Scanner(System.in);
     if(in.hasNextInt()){
        number = in.nextInt();
    }

    else{

        System.out.println("Error! Input must be an integer!");   

        System.out.println("");

        return numberVerify(number);

    }
    return number;
}

public static String comparison(int number1, int number2, int number3){
    String answer;
    if(number1 == number2 && number1 == number3)
    {       
        answer = "all the same";
    }
    else if(number1 != number2 && number1 != number3)
    {       
        answer = "all different";
    }
    else
    {       
        answer = "neither";
    }
    return answer;
}

public static void printer(String answer){
    System.out.println(answer);
}

最佳答案

效率在这里无关紧要。

用户将花费 SECONDS 来输入数字。操作系统可能需要几毫秒来执行键盘事件处理、屏幕重绘等。您的 Java 应用程序将花费几毫秒或更少的时间来做出决策。为减少微秒分量而付出的任何努力都是白费力气。

如果这里有问题需要解决(我并不是说有),它们将是:

  • 使用户界面易于使用。

  • 编写易于阅读和维护的代码。

  • 将代码编写得“优雅”...这不一定与之前的相同。


更新 - 显然您实际上对简化和/或减小代码大小感兴趣。

首先,大多数人所说的效率并不是这个意思。 (实际上,我认为花时间改进足够好的代码是对时间的低效利用。)

其次,简单性和代码大小不是一回事。大多数人(程序员)会说简单的代码是易于理解的代码……对于普通程序员而言。通常,更简洁的问题解决方案实际上很难理解。 (以@rby的代码为例,如果你需要在不测试的情况下确定它是正确的,那么你需要非常仔细地阅读它。)

最后,专业的软件工程师遵循一般原则,即代码需要“足够好以达到目的”1 ... 但不能更好。 Perfect is the enemy of good .花时间让程序变得比它需要的更好是在浪费你的时间,并且有可能让你/你的客户/你的雇主付出金钱。

1 - 目的可能包括性能标准、可读性/可维护性、通用性/可重用性以及各种特定的正确性标准。但事实并非如此。通常,代码是为其中许多标准不相关甚至适得其反的上下文编写的。但我离题了....

关于java - 我怎样才能使它更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792339/

相关文章:

python - 我可以相信 dict 的顺序在每次迭代时都保持不变吗?

jQuery 改变迭代方向

java - 使用@Transient注释实体

java - 消化 md5 抛出 UTF8 错误 - Java

mysql - 在 MySQL 中循环遍历枚举

performance - 为什么在 Internet Explorer 中随着内存使用量的增加页面会变慢

java - 在 Android 上解析 ~1 MB JSON 非常慢

java - 如何使用this.getClass().getResource(String)?

java - 在运行时重写 SpringBootJar 类

r - 按组高效过滤多列