[英]Collection<Integer> cannot be converted to int while using Stream API
[英]Using Integer or int in a for each with a collection
我有一個簡短的問題,我不清楚這是更好的做法。
假設我有一個集合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)
嗎?
如果可能,請評論速度,功效,優缺點或每一項。
這取決於您在for-each循環中正在做什么,以及是否需要“重新裝箱”一個int
或需要多長時間對一個Integer
裝箱。 它還取決於如何或是否要處理null
-如果要允許null
,則必須使用Integer
。
坦白說,無論哪種方式都不太可能產生重大變化。
Integer將int值映射為對象,因此它可以為null,但int不能為null。 所以int是基本類型,因此它比Integer對象使用更少的內存
您的集合包含Integer
,最好使用for (Integer i: c)
進行迭代。 您將需要這樣做,以避免不必要地將Integer
取消裝箱為int
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.