对于一般用途,哪种方式更好地反转整数?

时间:2015-03-07 05:12:36

标签: java

在大多数情况下,最好通过提取数字并将它们放到字符串上并使用valueOf()来获取值来反转整数;或者将整数直接反转为整数?

我倾向于说前者更好,因为它在我的书的答案解决方案中无处不在,只要他们需要反转一个整数。

使用其他方法有什么缺点,除了写入和读取更耗时?

3 个答案:

答案 0 :(得分:1)

第一种方式(将整数转换为字符串,反转字符串,然后将其转换回来):

  • 更容易理解。
  • 可能需要更少的代码。
  • 可能会慢一点。

第二种方式:

  • 难以理解。
  • 可能需要更多代码。
  • 可能更快(一方面,它不需要内存访问)。

当然,现代计算机是如此复杂,以至于唯一方式来判断事物是否更快是实际测量它。我说第二种方式可能会更快,但这只是猜测。

结论:
如果您需要快速编写代码,请执行第一个代码,因为它更容易 如果您需要快速运行代码,请测量每个代码运行所需的时间,并使用更快的代码。

但是,在实践中,除了编程练习之外,永远不会需要反转整数。因此,如果您在询问现实世界中更常使用哪种算法,则答案都不是。

答案 1 :(得分:1)

String方法更易于编写,并且更易于被其他程序员(以及2周内自己)阅读。使用模数的直接转换方法速度更快,占用的内存更少,但读写起来更难。

请注意,通过JIT编译和JVM的改进,第一种方法可以在内部进行优化,以便模拟后者。我们都知道编程的一般规则是避免"过早优化"。因此,使用String的更易读的方法可能是最好的。

答案 2 :(得分:0)

你是什么意思"更好"你是什​​么意思"为了一般目的"?

  • 为了解释如何在教科书中编码的一般目的,for循环和模数最好。
  • 为了明确正确的一般目的,我建议转换为字符串,因为这是一个字符串操作,而不是整数操作。

我还没有在任何地方看到过这种操作,所以我无法证明任何人真正使用它。我认为这是一个棘手的问题 - 你的"通用目的"毕竟可能不存在。