首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将10乘以Java中的“Integer”对象?

如何将10乘以Java中的“Integer”对象?
EN

Stack Overflow用户
提问于 2018-06-25 00:18:53
回答 2查看 0关注 0票数 0

如何将10乘以一个Integer对象并取回Integer对象?

我正在寻找这样做的最好方法。

我可能会这样做:从Integer对象中获取int ,将其与另一个int相乘,并用此int值创建另一个Integer对象。

代码:

代码语言:javascript
复制
integerObj = new Integer(integerObj.intValue() * 10);

但是,我看到一个代码,作者正在这样做:StringInteger对象中获取,在末尾连接“0”,然后Integer通过使用Integer.parseInt

代码是这样的:

代码语言:javascript
复制
String s = integerObj + "0";
integerObj = Integer.parseInt(s);

这样做有什么好处吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-25 08:33:24

字符串方法很有趣,但几乎可以肯定是一种不好的方法。

获取Integer的int值,并创建一个新的整数将非常快,在这里作为parseInt调用将相当昂贵。

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 09:31:33

第二种方式的问题是Strings在Java中的处理方式:

  • "0" 在编译时转换成一个常量的String对象。
  • 每次调用此代码时,s都会将其构造为新的String对象,javac并将该代码转换为String s = new StringBuilder().append(integerObj.toString()).append("0").toString()(旧版本的StringBuffer)。即使你使用相同的integerObj,即, String s1 = integerObj + "0"; String s2 = integerObj + "0"; (s1 == s2)会是false,虽然s1.equals(s2)true
  • Integer.parseIntnew Integer()无论如何内部调用,因为Integer是不可改变的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000318

复制
相关文章

相似问题

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