数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java 提供了另一个容器 **java.util.ArrayList **集合类,让我们可以更便捷的存储和操作对象数据。
java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。
查看类
java.util.ArrayList
ArrayList
,ArrayList
查看构造方法
public ArrayList() :构造一个内容为空的集合。基本格式:
ArrayList
list = new ArrayList ();
在 JDK 7 后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:
ArrayList
list = new ArrayList<>();
查看成员方法
public boolean add(E e) : 将指定的元素添加到此集合的尾部。参数 E e ,在构造 ArrayList 对象时,
public static void main(String[] args) {
// 创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
// 备注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的。
ArrayList<String> list = new ArrayList<>();
System.out.println(list); // []
// 向集合当中添加一些数据,需要用到add方法。
list.add("赵丽颖");
System.out.println(list); // [赵丽颖]
list.add("迪丽热巴");
list.add("古力娜扎");
list.add("玛尔扎哈");
System.out.println(list); // [赵丽颖, 迪丽热巴, 古力娜扎, 玛尔扎哈]
// list.add(100); // 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行
}
复制代码
对于元素的操作,基本体现在——增、删、查。常用的方法有:public boolean add(E e) :将指定的元素添加到此集合的尾部。public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。这些都是最基本的方法,操作非常简单,代码如下:
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
System.out.println(list); // []
// 向集合中添加元素:add
boolean success = list.add("柳岩");
System.out.println(list); // [柳岩]
System.out.println("添加的动作是否成功:" + success); // true
list.add("高圆圆");
list.add("赵又廷");
list.add("李小璐");
list.add("贾乃亮");
System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]
// 从集合中获取元素:get。索引值从0开始
String name = list.get(2);
System.out.println("第2号索引位置:" + name); // 赵又廷
// 从集合中删除元素:remove。索引值从0开始。
String whoRemoved = list.remove(3);
System.out.println("被删除的人是:" + whoRemoved); // 李小璐
System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 贾乃亮]
// 获取集合的长度尺寸,也就是其中元素的个数
int size = list.size();
System.out.println("集合的长度是:" + size);
}
复制代码
ArrayList 对象不能存储基本类型,只能存储引用类型的数据。类似
我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写即可。