java学习笔记(ArrayList集合)

对象数组

  • java中数组可以储存任意对象,包括自定义的类实例化生成的对象
  • 下图中定义了一个Person的类

java学习笔记(ArrayList集合)

  • 接下来创建一个长度数组,用来储存三个Person对象
  • 当数组被创建后,如果没有向数组中添加元素,那么数组中的值全部为null

java学习笔记(ArrayList集合)

  • 输出为null

java学习笔记(ArrayList集合)

  • 如果将对象作为元素添加入数组中,那么数组中存放的为对象的地址值

java学习笔记(ArrayList集合)

  • 最后得到的输出为3个对象的地址值

java学习笔记(ArrayList集合)

  • 此时,数组元素可以直接代表实例化后的对象,来调用该类中的方法

java学习笔记(ArrayList集合)

  • 数组作为一种容器有一个很大的缺点,那就是数组一旦被创建,那么它的长度就被确定了下来。如果想要添加别的元素,就需要另外创建一个数组来存放,并且要将原数组的内容挪至新数组中。

ArrayList集合

什么是ArrayList集合

  • ArrayList是一种类似于数组的容器,它可以存放java中的对象
  • ArrayList相较于数组的优点就是,数组的长度是固定的。而ArrayList的长度可以改变,可以通过add的方法向ArrayList中添加元素。
  • ArrayList中存放的数据只能是引用类型,不可以是基本类型

如何使用ArrayList

  • 导包:java.util.ArrayList<E>
    • ArrayList<E>中的<E>代指泛型的意思。
    • 泛型:就是装在集合当中的所有元素,全都是统一的什么类型
    • 注意泛型只能是引用类型,不能是基本类型
  • 实例化:ArrayList<String> list = new ArrayList<>();
    • 创建了一个ArrayList集合,集合的名字是list,里面装的全都是String字符串类型的数据
    • 注意:从JDK 1.7+开始,右侧的尖括号可以不写内容,但是<>本身还是要写的
  • 对于ArrayList集合来说,**直接打印得到的不是地址值,而是内容。**如果内容为空,得到的则是中括号[]。

ArrayList集合的常用方法

方法名 返回值 参数类型功能 功能
add(E e) 是否添加成功(boolean) 和集合中元素类型一致 向集合当中添加元素
get(int index) 对应位置的元素(与ArrayList中元素的类型一致) 要获取元素的索引值 从集合中获取元素
remove(int index) 从集合中删除的元素(与ArrayList中元素的类型一致) 要删除元素的索引值 从集合中删除元素
size() 集合中包含元素的个数(int) 获取集合的长度
  • 注意:对于ArrayList集合来说,add添加动作是一定成功的,所以add()的返回值可用可不用。大是对于其他集合来说,add添加的动作不一定成功。

ArrayList储存基本数据类型

  • 由于泛型只能储存引用类型,不能储存基本数据类型。因此需要对基本数据类型进行“包装”,使得ArrayList集合可以存放基本数据类型
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
  • 除了Integer(int)Character(char),其他都只要将首字母变为大写即可
  • 从JDK 1.5+开始,都支持自动装箱、自动拆箱
    • 自动装箱:基本类型 --> 包装类
    • 自动拆箱:包装类 --> 基本类型