这似乎效率低下或丑陋或出于任何原因,我希望它更优雅
if (a > b) {
recurseWith(a);
recurseWith(b);
else {
recurseWith(b);
recurseWith(a);
}
在我的代码中,a和b更长,新函数的参数更笨重,而且看起来很蹩脚。有没有办法清理它?
顺序很重要,因为它们使用全局变量,而且这段代码正常工作。
我正在寻找Java的解决方案
-Austin
答案 0 :(得分:0)
以下逻辑会不会有帮助吗?
if(a<=b) swap(a,b);
recurseWith(a);
recurseWith(b);
答案 1 :(得分:-2)
我没有一个好的答案,但根据参数的粗糙度/长度可以将它们隐藏在Runnable中,因此您只需要编写一次。你决定这是否“更干净”。这里看起来会更糟,因为我们正在使用a
和b
。
Runnable aRunnable = new Runnable() {
public void run() {
recurseWith(a);
}
}
Runnable bRunnable = new Runnable() {
public void run() {
recurseWith(b);
}
}
if (a > b) {
aRunnable.run();
bRunnable.run();
else {
bRunnable.run();
aRunnable.run();
}