在一个集合中使用Integer或int for each

时间:2014-02-21 22:12:52

标签: java collections

我有一个简单的问题,我有点不清楚这是更好的做法。

假设我有一个集合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)

如果可能,请评论速度,功效,优点和缺点或各自。

3 个答案:

答案 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)进行迭代。您需要执行此操作以避免Integerint的不必要的拆箱。