首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java :如何即兴使用if else语句

Java :如何即兴使用if else语句
EN

Stack Overflow用户
提问于 2015-06-21 04:53:49
回答 7查看 484关注 0票数 1

在最近的java面试中,关于if then else的问题被问到了,并且问题的提出方式是,如果给你1000 if else条件,比如

代码语言:javascript
复制
if(condition 1){
      task 1
}else if (condition 2){
      task 2 
}else if (condition 3){
      task 3
}
...
else if (condition 1000){
      task 1000 
}

我被要求即兴编写上面的代码。我给出的答案是,它可以通过使用开关来即兴发挥。但面试官并不满意,并要求采取另一种方法。但我无法解释它。所以我想知道有没有更好的方法。

很抱歉问了这么愚蠢的问题,但我真的很想知道答案

EN

回答 7

Stack Overflow用户

发布于 2015-06-21 05:14:55

从面试官的角度来看,这个问题的目的是得到一个答案,这个答案将是下一个问题的分段。

下面是使用集合进行改进的一种方法。对于java interview GenericsAutoboxing将是一个很好的分段,下面的答案正是包括了这一点。你可以通过不同的方式来改进它,但以下就是答案。

代码语言:javascript
复制
 List<Integer> myRnage = new ArrayList<Integer>(1000);
 for(Integer theIndex : myRnage) {
     //do the task for theIndex at this point.
 }

也可以通过使用Apache库来演示Range实用程序的使用来回答同样的问题。这是更多的SO link

票数 1
EN

Stack Overflow用户

发布于 2015-06-21 04:57:23

如果条件是数值比较,您可以创建(或接收)方法列表,以及要执行的方法的索引。这样,您就去掉了所有的if和else,并简单地调用methods[somePosition].Invoke()

PS:上面的代码不是java,它只是一个可以在任何语言中应用的例子。

票数 0
EN

Stack Overflow用户

发布于 2015-06-21 04:57:50

使用哈希表方法键入您的条件,而不是检查每个条件。散列是1阶的,因此它比通过if语句检查所有条件更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30958778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档