如何避免在Java中多次调用函数?

如何避免在Java中多次调用函数?,java,data-structures,Java,Data Structures,我用不同的值调用一个函数来得到一个特定的结果。有没有办法减少这样的调用函数,以提高Java的性能和可靠性 func(1,6); func(4,0); func(2,7); func(5,0); func(3,0); private static void func(int printer,int printing){ if(printing == 0){ for(int j=1;j<=7;j++){ if(j!=p

我用不同的值调用一个函数来得到一个特定的结果。有没有办法减少这样的调用函数,以提高Java的性能和可靠性

func(1,6);
func(4,0);
func(2,7);
func(5,0);
func(3,0);


private static void func(int printer,int printing){
        if(printing == 0){
            for(int j=1;j<=7;j++){
                if(j!=printer){
                    arrayOdd.add(j);
                }
            }
        }else{
            for(int j=1;j<=7;j++){
                if(j!=printer && j!=printing)
                    arrayOdd.add(j);
            }
        }
    }

我的第一个注意事项是,您可以将函数替换为

private static void func(int printer,int printing){
    for(int j=1;j<=7;j++){
        if(j!=printer && j!=printing)
            arrayOdd.add(j);
    }
}
它也会表现出同样的行为


我的第二个注意事项是,重复调用函数不会对性能或可靠性产生任何影响,除非使用递归,在这种情况下,可能会出现典型的堆栈溢出错误。为什么您希望/需要更少的次数调用该函数?

如果上述函数可以是幂等函数,那么相同的输入总是产生完全相同的输出,我建议进行记忆。
看到函数输出时,看起来您只是从一个7位数的固定数组中删除传递的值。如果这就是您想要的,只需从数组中删除元素并记忆函数即可。这样,该函数将只执行64次最坏情况64种不同的组合,用于0、1、2、3、4、5、6、7的2位组合。您可以将打印机的值和打印的值放入列表或数组中,但您需要手动输入参数,只要没有逻辑保持输入。 我是说那种事

int final static THE_TIMES_YOU_CALLED_THE_FUNC=5;

List<int[]> list =new ArrayList<>(THE_TIMES_YOU_CALLED_THE_FUNC);
        list.add(new int []{1,6});
        list.add(new int []{4,0});
        list.add(new int []{2,7});
        list.add(new int []{5,0});
        list.add(new int []{3,0});

        for(int i=0;i<list.size();i++){
            funk(list.get(i)[0],list.get(i)[]);
        }
    }

    private static void func(int printer,int printing){
        if(printing == 0){
            for(int j=1;j<=7;j++){
                if(j!=printer){
                    arrayOdd.add(j);
                }
            }
        }else{
            for(int j=1;j<=7;j++){
                if(j!=printer && j!=printing)
                    arrayOdd.add(j);
            }
        }
    }

最后,编译器将调用func 5次,我看不出我的解决方案有什么优点,但最终您希望只编写一次func。

您是否有调用func的逻辑或模式?我没看到。您有一个值列表,并在Loop中调用函数。您能更具体地说明您的目标吗?