什么是集合:
- 集合是一种容器,用来装数据,类似于数组
- 数据定义完成并启动后, 长度就固定了。
- 集合大小可变,开发中用的更多
ArryList长度可变的原理:
- 当创建ArryList集合容器的时候,底层会存在一个长度为10个大小的空数组
- 扩容原数组1.5倍大小的新数组
- 将原数组数据,拷贝到新数组中
- 将新元素添加到新数组
import java.util.ArrayList;
public class ArrayListDemo1 {
/*
ArrayList集合的使用:
细节: 创建String, StringBuilder, ArrayList类的对象, 打印对象名, 都没有看到地址值, 而是元素内容
1. 构造方法 :
public ArrayList() : 创建一个空的集合容器
2. 集合容器的创建细节 :
ArrayList list = new ArrayList();
现象: 可以添加任意类型数据
弊端: 数据不够严谨
ArrayList<String> list = new ArrayList<>();
<> : 泛型
目前: 使用泛型, 可以对集合中存储的数据, 进行类型限制
细节: 泛型中, 不允许编写基本数据类型
问题: 那我要是想集合中, 存储 整数, 小数, 字符... 这些数据, 怎么办呢?
解决: 使用基本数据类型, 所对应的包装类
byte Byte
short Short
int Integer ***
long Long
float Float
double Double
boolean Boolean
char Character ***
*/
public static void main(String[] args) {
// 步骤1: 创建一个集合容器, 内部存储 11.1 22.2 33.3
ArrayList<Double> list1 = new ArrayList<>();
list1.add(11.1);
list1.add(22.2);
list1.add(33.3);
// 步骤2: 创建一个集合容器, 内部存储 张三, 李四, 王五
ArrayList<String> list2 = new ArrayList<>();
list2.add("张三");
list2.add("李四");
list2.add("王五");
// 步骤3: 在控制台展示两个集合中的元素
System.out.println(list1);
System.out.println(list2);
}
}
成员方法:
public class ArrayListDemo2 {
/*
ArrayList 常用成员方法 :
1. 增 :
public boolean add(E e) : 将指定的元素添加到此列表的尾部
public void add(int index, E element) : 在指定索引位置, 添加对应的元素 (插队)
2. 删
public E remove(int index) : 根据索引做删除, 返回被删除掉的元素
public boolean remove(Object o) : 根据元素做删除, 返回是否删除成功的状态
3. 改
public E set(int index, E element) : 修改指定索引位置, 为对应的元素, 返回被覆盖掉的元素
------------------------------------------------------------------------------------------
以上方法, 返回值通常不做接收
4. 查
public E get(int index) : 根据索引, 获取集合中的元素
public int size() : 返回集合中元素的个数
*/
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三1");
list.add("张三2");
list.add("张三3");
String s = list.get(2);
System.out.println(s);
System.out.println(list.size());
}
private static void updateMethod() {
ArrayList<String> list = new ArrayList<>();
list.add("张三1");
list.add("张三2");
list.add("张三3");
String result = list.set(1, "李四");
System.out.println(result);
System.out.println(list);
}
private static void removeMethod() {
ArrayList<String> list = new ArrayList<>();
list.add("张三1");
list.add("张三2");
list.add("张三3");
System.out.println(list);
boolean flag = list.remove("李四");
System.out.println(flag);
System.out.println(list);
}
private static void addMethod() {
ArrayList<String> list = new ArrayList<>();
list.add("张三1");
list.add("张三2");
list.add("张三3");
list.add(0, "张三4");
System.out.println(list);
}
}