gpt4 book ai didi

java - 如何在 O(1) 内选择一个方法

转载 作者:行者123 更新时间:2023-12-01 19:33:56 24 4
gpt4 key购买 nike

假设我有 n 个方法,并且得到一个数字 i,现在我想调用方法 f_i

执行此操作的简单方法是使用如下所示的条件:

if (j == 1) f_1();
else if (j == 2) f_2();
...
else if (j == n) f_n();

由于最坏情况下有 n 次比较,因此最坏情况运行时间为 O(n)。

额外:如果函数 f_i 将参数 p[i][1] 传递给 p[i][#parameters of f_i],其中 p 是二维数组,您将如何解决这个问题?

最佳答案

只需使用数组,如下所示:

private static final class Functions {
private static void f0() {
System.out.println(0);
}
private static void f1() {
System.out.println(1);
}
private static void f2() {
System.out.println(2);
}
private static void f3() {
System.out.println(3);
}
}

public static void main(String[] args) throws Exception {
int j = 2;

Runnable[] functions = {
Functions::f0,
Functions::f1,
Functions::f2,
Functions::f3,
};

functions[j].run();
}

如果您的函数返回某些内容和/或接受参数,则您需要为数组使用不同的类型,例如 ConsumerSupplierFunction.

关于java - 如何在 O(1) 内选择一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58510808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com