ArrayList集合
1. 集合和数组的特点
数组 | 是一个容器 | 可以存放一种数据类型 | 存放的元素既可以是基本数据类型 又可以是引用数据类型 | 长度固定 |
---|---|---|---|---|
集合 | 是一个容器 | 可以存放多种数据类型 (但是使用的时候还是存放一种) | 只能存放引用数据类型 | 长度可变 |
ArrayList集合的使用
查看API
- 在java.util 包下, 所以使用前需要先导包
ArrayList<E>
: E代表一种引用数据类型, 叫做泛型; 作用是用来限定集合中元素的数据类型ArrayList<String>
, 那么这个集合中只能存放String类型
- ArrayList是由大小可变数组的实现(了解即可)
- 创建ArrayList集合的时候, 底层会创建一个长度为0的数组
- 当我们存放元素的时候, 重新创建一个长度为10的数组
- 如果添加的元素超过10, 再创建一个长度1.5倍的新数组, 将原数组中的内容拷贝到新数组中, 再添加新元素
ArrayList集合的常用方法
增加
public class Demo03 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵刘");
list.add("王麻子");
String remove = list.remove(2);
System.out.println("删除了" + remove); //返回被删除的元素
boolean b = list.remove("王麻子");
System.out.println(b); //返回是否被删除
System.out.println(list); //打印集合
}
}
删除
public E remove(int index) : 删除指定索引位置的元素, 返回被删除的元素
public boolean remove(Object o) : 删除指定元素, 返回是否删除成功
修改
/*
修改
*/
public class Demo04 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵刘");
list.add("王麻子");
System.out.println(list);
String s = list.set(2, "牛二");
System.out.println("被修改的元素" + s); //返回被修改的元素
System.out.println(list);
}
}
查询
/*
查询
*/
public class Demo05 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵刘");
list.add("王麻子");
String s = list.get(2);
System.out.println(s);
System.out.println(list.get(3));
//集合长度
System.out.println(list.size());
}
}
数组的长度:
arr.length
字符串的长度:
s.length()
集合的长度:
list.size()
ArrayList集合的操作
遍历
/*
遍历集合
*/
public class Demo01 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵刘");
list.add("王麻子");
for (int i = 0; i < list.size(); i++) {
//用get方法取到每一个数组
System.out.println(list.get(i));
}
System.out.println(list);
}
}