Java 集合中保存着对象,而不是基本类型。数组中这两者都可以保存,但是大多数时候,数组没有我们想要的那么 OO。如果想要在列表中保存 Object 的子类型,只要调用 ArrayList 上的各种方法中的一个就可以了。最简单的是:
这将添加的对象附加在列表的末端。到目前为止,一切尚好。但是如果想要添加一个基本类型到列表中,那会怎么样?不能直接添加。相反,必须将基本类型包装(wrap) 在对象中。每个基本类型都有一个包装器类:
Boolean 用于 boolean 类型。
Byte 用于 byte 类型。
Character 用于 char 类型。
Integer 用于 int 类型。
Short 用于 short 类型。
Long 用于 long 类型。
Float 用于 float 类型。
Double 用于 double 类型。
例如,要将一个 int 基本类型放到 ArrayList 中,我们必须使用像下面这样的代码:
将基本类型包装在包装器实例中也叫做对基本类型进行装箱。要将基本类型取出来,就必须将它进行拆箱。包装器类上有大量有用的方法,但是必须要具有这些方法的事实,真正地使得大多数程序员感到苦恼,因为要与集合一起使用基本类型,需要做大量额外的工作。Java 5.0 支持自动装箱(autoboxing)/拆箱(unboxing),从而减轻了这一痛苦。
referenceVariableName.add(someObject);
这将添加的对象附加在列表的末端。到目前为止,一切尚好。但是如果想要添加一个基本类型到列表中,那会怎么样?不能直接添加。相反,必须将基本类型包装(wrap) 在对象中。每个基本类型都有一个包装器类:
Boolean 用于 boolean 类型。
Byte 用于 byte 类型。
Character 用于 char 类型。
Integer 用于 int 类型。
Short 用于 short 类型。
Long 用于 long 类型。
Float 用于 float 类型。
Double 用于 double 类型。
例如,要将一个 int 基本类型放到 ArrayList 中,我们必须使用像下面这样的代码:
Integer boxedInt = new Integer(1);
someArrayList.add(boxedInt);
将基本类型包装在包装器实例中也叫做对基本类型进行装箱。要将基本类型取出来,就必须将它进行拆箱。包装器类上有大量有用的方法,但是必须要具有这些方法的事实,真正地使得大多数程序员感到苦恼,因为要与集合一起使用基本类型,需要做大量额外的工作。Java 5.0 支持自动装箱(autoboxing)/拆箱(unboxing),从而减轻了这一痛苦。