一、集合的概述与数组的区别
集合的概述:
集合其实就是一个大小可变的容器,可以用来存储多个数据
集合的特点: 集合的大小可以动态改变,可以存储各种类型的数据
集合与数组的区别:
数组:数组大小固定,只能存储相同数据类型的数据
集合:集合大小可动态扩展,可以存储各种引用类型的数据
二、ArrayList类概述
ArrayList类底层是大小可变的数组的实现,存储在内的数据称为元素。也就是说 ArrayList 中可以不断添加元素,其大小会自动增长。
使用ArrayList类的时候,在E出现的位置使用引用数据类型替换,表示该集合可以存储哪种引用类型的 元素
三、ArrayList的构造方法
ArrayList() 构造一个初始容量为 10 的空列表。
格式:ArrayList<数据类型> 对象名=new Arraylist<>();
四、ArrayList类添加元素方法
public boolean add(E e):将指定的元素追加到此集合的末尾
public void add(int index,E element):在此集合中的指定位置插入指定的元素
public static void main(String[] args) {
/*
ArrayList类添加元素方法:
boolean add(E e) 将指定的元素添加在集合的末尾
void add(int index, E element) 将指定的元素插入在指定的索引位
置。
*/
// 创建了一个ArrayList集合对象,限制集合中的元素类型为String类型
ArrayList<String> list1 = new ArrayList<>();
// 往list1集合的末尾添加元素
list1.add("张三丰");
list1.add("章子怡");
list1.add("张翠山");
// 打印集合
System.out.println(list1);// [张三丰, 章子怡, 张翠山]
// 往list1集合所有为1的位置添加一个张无忌元素
list1.add(1, "张无忌");
System.out.println(list1);// [张三丰, 张无忌, 章子怡, 张翠山]
System.out.println("======================================");
// 创建一个ArrayList集合对象,可以存储任意引用类型的数据
ArrayList list3 = new ArrayList();
// 往list3集合中添加任意引用数据类型的元素
list3.add("殷素素");
list3.add(18);// int---->自动转换为Integer类型
list3.add(3.14);// double--->自动转换为Double类型
System.out.println(list3);// [殷素素, 18, 3.14]
System.out.println("==========================");
// 创建一个ArrayList集合对象,限制集合中的元素类型为Integer类型
ArrayList<Integer> list4 = new ArrayList<>();
// 往list4集合中添加任意引用数据类型的元素
list4.add(10);
list4.add(20);
list4.add(30);
System.out.println(list4);// [10, 20, 30]
}
五、ArrayList类常用方法
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index, E element) 修改指定索引处的元素,返回被修改的元素
public E get(int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
list1.add("张柏芝");
list1.add("白百合");
list1.add("李小璐");
list1.add("马蓉");
System.out.println(list1);// [张柏芝, 白百合, 李小璐, 马蓉]
// 需求:删除马蓉这个元素 boolean remove(Object o)
list1.remove("马蓉");
System.out.println("删除马蓉后的集合:" + list1);// [张柏芝, 白百合, 李小璐]
// 需求:删除索引为1的元素 E remove(int index)
String removeE = list1.remove(1);
System.out.println("被删除的元素是:" + removeE);// 白百合
System.out.println("删除索引为1的元素后的集合:" + list1);// [张柏芝, 李小璐]
// 需求:修改索引为1的元素为罗志祥 E set(int index, E element)
String setE = list1.set(1, "罗志祥");
System.out.println("被替换的元素是:" + setE);// 李小璐
System.out.println("替换索引为1的元素后的集合:" + list1);// [张柏芝, 罗志祥]
// 需求:获取索引为0的元素 E get(int index)
String e = list1.get(0);
System.out.println("0索引上的元素是:" + e);// 张柏芝
// 需求:获取集合中元素的个数 int size()
int size = list1.size();
System.out.println("集合中元素的个数是:" + size);// 2
// 循环遍历集合中所有元素
for (int i = 0; i < size; i++) {
System.out.println(list1.get(i));
}
}