[英]Using for-each over an array of Objects - “Integer[] array” - Why Does “for(int i : array)” Work?
当我遍历对象数组时,为什么在第二个“ for-each”循环中使用原始数据类型起作用? 是否在幕后进行了与Integer对象的原始等效项的转换?
import java.util.Arrays;
import java.util.Collections;
public class CodeTestingClass
{
public static void main(String[] args)
{
Integer[] array = {1,2,3,4,5};
Collections.rotate(Arrays.asList(array), 1);
System.out.println(Arrays.toString(array) + "\n" );
for(Integer i : array)
{
System.out.print(i);
}
System.out.print("\n");
for(int i : array)
{
System.out.print(i);
}
}
}
这是因为对于Java基本类型( int
, byte
, short
等),它执行“ autoboxing ”和autounboxing。
当您从集合中取出对象时,您将得到放入的Integer。 如果需要一个int,则必须使用intValue方法将Integer拆箱。 所有这些装箱和拆箱都很麻烦,并且会使您的代码混乱。 自动装箱和拆箱功能使过程自动化,消除了痛苦和混乱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.