1 数组的局限性
通常我们存储对象,如果选择对象数组,局限性比较明显:数组长度固定,无法适应数据变化的需求。为了解决此问题,Java提供了java.util.ArrayList集合类,它可以随意添加或删除元素,其大小自动变化。
2 ArrayList
1 简单介绍
- java.util.ArrayList集合类是大小可变的数组的实现,它提供了对内部元素增删改查的操作;
- 需要import java.util.ArrayList后使用;
- 基本格式:ArrayList<E> list = new ArrayList<E>();或ArrayList<E> list = new ArrayList<>();
- ArrayList<E>:<E>表示一种指定的数据类型,叫做泛型。E,即Element(元素),我们使用一种引用数据类型将其替换,表示我们将存储此种引用类型的元素。例如ArrayList<String>,ArrayList<Student>;
2 常用方法
对于元素的操作,ArrayList 主要体现在增、删、改、查4个方面。
- 增,public boolean add(E e):将指定元素添加到集合尾部;
- 删,public E remove(int index):移除此集合指定位置的元素,返回被删除的元素;
- 改,public E set(int index, E e)用指定的元素替代集合中指定位置上的元素,并返回旧元素;
- 查,public E get(int index):返回集合指定位置上的元素;
- 查, public int size():返回集合的元素个数。
import java.util.ArrayList;
public class DemoArrayListMethod {
public static void main(String[] args) {
//创建对象集合
ArrayList<String> list = new ArrayList<>();
//增加元素
list.add("刘备");
list.add("关羽");
list.add("张飞");
System.out.println("集合元素:");
System.out.println(list);
//查询指定索引元素
System.out.println("第一个元素:"+list.get(0));
//查询元素个数
System.out.println("当前元素个数"+list.size());
//删除指定索引元素,返回被删除元素
System.out.println(list.remove(0)+ " 被删除");
System.out.println("删除后集合元素:");
System.out.println(list);
//更改指定索引元素,返回被更改元素
System.out.println(list.set(0, "赵云") + " 被更改");
System.out.println("更改后集合元素:");
System.out.println(list);
//遍历集合元素
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
}
}
集合元素:
[刘备, 关羽, 张飞]
第一个元素:刘备
当前元素个数3
刘备 被删除
删除后集合元素:
[关羽, 张飞]
关羽 被更改
更改后集合元素:
[赵云, 张飞]
赵云
张飞
3 ArrayList如何存储基本数据类型
- ArrayList只能存储引用类型,不能存储基本类型, 类似<int>不能成立;
- 但ArrayList可以存储基本类型对应的包装类型;
- 因此,想要存储基本类型,必须进行转换,转换规则如下:
基本类型 | 对应包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
只有Integer和Character需要特殊记忆,其他基本类型只要首字母大写即可。
import java.util.ArrayList;
public class DemoArrayListMethod {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
}
}
[1, 2, 3, 4]