我有一个简单的问题,我有点不清楚这是更好的做法。
假设我有一个集合c,它包含数字3,5和8。
Collection<Integer> c = new ArrayList<Integer>();
c.add(3);
c.add(5);
c.add(8);
我理解for-each循环的想法,但我不清楚其中一部分。
我写的是:for(Integer i: c){}
还是for(int i: c)
?
如果可能,请评论速度,功效,优点和缺点或各自。
答案 0 :(得分:2)
这取决于你在for-each循环中做了什么,以及你是否需要&#34; re-box&#34; int
,或者您需要将Integer
取消装箱的频率。null
。这还取决于您希望如何处理null
- 如果您希望允许Integer
,则必须使用{{1}}。
坦率地说,无论如何都不太可能产生重大影响。
答案 1 :(得分:1)
Integer将int值映射为对象,因此它可以为null但int不能。 所以int是一个基本类型,因此它比Integer对象使用更少的内存
答案 2 :(得分:1)
您的收藏集包含Integer
个,最好使用for (Integer i: c)
进行迭代。您需要执行此操作以避免Integer
到int
的不必要的拆箱。