|
0
|
| Farhan stands with Palestine · 技术社区 · 11 年前 |
|
|
1
5
1) 编译器为每个
把它想象成一个哈希表(
3) 是的,一个
4) 你从来没有
需要
使用
2) 从其他问题的答案中找出差异。 |
|
|
2
3
我使用
跳转表可以被认为是代码中的一个位置数组。例如,设想如下:
然后你有一个跳转表
然后,要找到适用于情况1的正确代码位,Java只需转到
显然,实际实现要比这复杂得多,因为它需要处理更多不同的情况,但它给出了想法。
也不
要扩展“做java错误”这件事:
你可以用完全相同的问题
这不意味着
如果您正在使用一种语言进行编程,而忽略了该语言工具包中的一个基本工具,那么您使用的语言是错误的。这并不是一个很难使用的晦涩特性,这是该语言中的主要流控制语句之一。 如果木匠只使用锤子而不使用螺丝刀。。。他们做错了。同样,如果程序员从不使用重要的语言功能。。。他们做错了。 这里有句谚语 “如果你唯一的工具是锤子,一切都像钉子” . |
|
|
3
2
1: 跳转表是跳转目标的表。跳转目标是代码中的一个地址,该地址对应于属于交换机中某个案例的代码。举个简单的例子,如果你的开关盒是0,1。。。N、 则N+1个目标将位于索引0、1。。。N。您只需计算打开的值,然后通过索引到表中来查找目标,而不是通过比较N+1次。这就是效率。
2:
3: 是的,
4: 功率!=效率但是,为了回答隐含的问题:更有效的switch语句没有被使用,因为你的同事没有使用它。你必须问他们为什么。也许是品味的问题,或者是对
|
|
4
2
1) 在切换情况下,跳转表将代码段中的位置映射到特定情况。例如,考虑以下片段:
将有一个跳转表将a=1映射到由
2) 的确,if-else语句可以测试不相等性,但实现switch-case语句的相同行为需要链接if-elses语句。这是上述行为的等效版本。
在某些时候,这可能是个人观点的问题,但在这种特定情况下,switch-case语句更具可读性。
但很自然,if else语句仍然是不可或缺的,你应该使用合适的工具来完成这项工作。
|
|
5
0
用外行的话来说,差异是微不足道的。 二者都 有他们的 赞成的意见 和 欺骗 。在大多数情况下,你会 从不 使用 转换 -相反,您可以使用 散列表 带操作 或其他构造 那更好 可读性 . 我建议你阅读高效Java或 https://code.google.com/p/guava-libraries/wiki/GuavaExplained 在c#中,您可以这样写:
之后你可以
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 11 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 12 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 12 月前 |
|
pebble unit · 如何检查以前缀开头、以后缀结尾的属性(不是属性值) 12 月前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |