如何解决迭代 Java 中的自动框类型列表
如果我填充这样的列表
List<Integer> l = new ArrayList<>();
for(int i = 0; i < 1000000; ++i) {
l.add(i);
}
使用自动框类型
for(Integer i : l) {
// do stuff...
}
或使用原始类型
for(int i : l) {
// do stuff...
}
解决方法
实际上,第一个循环 - for(Integer i : l)
- 没有自动装箱,因为 l
是一个 List<Integer>
。将元素添加到 List
时会发生自动装箱。
另一方面,第二个循环 - for(int i : l)
- 将 Integer
元素自动拆箱为 int
。
至于哪个更好,这取决于您将如何处理元素。
例如,如果您要将它们添加到另一个 List
(或检查它们是否是某个 Map
的键),则无需将它们拆箱,因此您可以使用第一个循环。
另一方面,如果您要对它们进行数值运算(例如计算它们的总和),则无论如何您都必须将它们拆箱,因此您不妨继续进行第二个循环。>
,版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。