哪个更快,int到String或String到int?

Dav*_*lsh 4 java android

这似乎是一个相当基本的问题,我提前道歉.

我正在编写一个使用一组预定义数字的Android应用程序.目前我正在使用int值,但在某些时候我可能也需要使用floatdouble值.

这些数字用于两件事.首先,我需要将它们显示给用户,我需要一个String(我正在创建一个自定义View并绘制String一个Canvas).其次,我需要在一种计算器中使用它们,它们显然需要int(或float/ double).

由于数字是相同的,无论它们是用作String还是int,我只想存储一次(如果我需要更改任何一个,这也会减少错误;我只需要在一个地方更改它们).

我的问题是:我应该将它们存储为String或作为int?它更快写的int作为String,或来解析intString?我的直觉告诉我解析需要更多时间/资源,所以我应该将它们存储为ints.我对吗?

pax*_*blo 6

实际上,你的直觉可能是错的(我强调可能,请参阅下面关于测量的评论).要将字符串转换为整数,需要进行一系列乘法/加法运算.要将整数转换为字符串,需要除法/模数.很可能前者比后者更快.

但我想指出你应该衡量,而不是猜测!景观中充斥着依赖于错误假设的算法集团.

我还想指出,除非你的计算器每秒钟都要做大量的计算(而且我说数百万甚至数十亿),差别几乎肯定是无关紧要的.

在绝大多数用户交互式应用程序中,99%的计算机时间都花在等待用户做某事上.

我的建议是做一些让你的生活更容易成为开发人员的事情,并担心如果(并且只有)它成为一个问题的性能.并且,为了澄清,我建议将它们以原生形式(而不是字符串)存储对于计算器来说是最容易的.


Dal*_*him 5

我对一个 1 000 000 大小的 int 和 String 数组进行了测试。我只对解析进行计时,结果显示:

  • 案例 1,从 int 到 String:1 000 000 平均 344 毫秒
  • 情况 2,从 String 到 int :平均 140 毫秒内 1 000 000

结论,你的胆子错了:)!

我和其他人一起说,这不会使您的应用程序变慢。更好地专注于使其更简单、更安全。