【自学笔记】 Java基础 - ArrayList
# ArrayList## 概述
- java.util.ArrayList 是大小可变得数组的实现,存储再内的数据称为元素,此类提供一些方法操作内部存储的元素
- ArrayList中可以不断添加元素,其大小也自动增长。
## 集合和数组的区别
- 共同点:都说存储数据的容器
- 不同点:数组的容量是固定的,集合的容量是可变的
## 构造方法
- ArrayList():构造一个初始容量为10的空列表
- ArrayList(Collection<? extends E> c):构造一个包含指定collection的元素列表,这些元素是按照该collection的迭代器返回他们的顺序排列的
- ArrayList(int initialCapacity):构造一个具有指定初始容量的空列表
## 常用方法
- public boolean add(E e):将指定的元素追加到此列表的末尾。
- public void add(int index,E element)在此列表中的指定位置插入指定的元素。
- public E get(int index):返回此列表中指定位置的元素。
- public E remove():集合当中删除元素,参数就是索引编号,返回值就是被删除的元素。将任何后续元素移动到左侧(从其索引中减去一个元素)。
- public boolean remove(Object o):从列表中删除指定元素的第一个出现(如果存在)。将任何后续元素移动到左侧(从其索引中减去一个元素)。
- public int size():获取集合的尺寸长度,返回值是集合当中包含的元素个数。
- public E set(int index,E element):用指定的元素替换此列表中指定位置的元素。
- public void clear()从列表中删除所有元素。 此呼叫返回后,列表将为空。
注:在做遍历删除的时候要特别注意"remove"方法,因为它在删除元素后,后面的元素会往前走一位
```Java
public class Demo2ArrayList {
public static void main(String[] args) {
// 创建集合容器的对象
ArrayList list = new ArrayList();
// add方法想容器中添加数据
list.add("a");
list.add(123);
list.add(false);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
```
```Java
public class Demo3ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
// public boolean add(E e):将指定的元素追加到此列表的末尾。
list.add("111");
list.add("222");
list.add("333");
list.add("444");
// public void add(int index,E element)在此列表中的指定位置插入指定的元素。
list.add(0,"666");
System.out.println(list);
// public E get(int index):返回此列表中指定位置的元素。
System.out.println(list.get(2)); // 222
// public E remove():从集合当中删除元素,参数就是索引编号,返回值就是被删除的元素。
list.remove(2);
System.out.println(list); //
// public E remove():集合当中删除元素,参数就是索引编号,返回值就是被删除的元素。
list.remove("111");
System.out.println(list);//
// public int size():获取集合的尺寸长度,返回值是集合当中包含的元素个数。
System.out.println(list.size()); //3
// public E set(int index,E element):用指定的元素替换此列表中指定位置的元素。
list.set(1,"888");
System.out.println(list); //
// public void clear()从列表中删除所有元素。 此呼叫返回后,列表将为空。
list.clear();
System.out.println(list);// 空
}
}
```
## 集合类型限制
- ArrayList<String> list = new ArrayList<>; 创建了一个ArrayList集合,集合的名称是list,里面装的全都是string类型的数据。备注:从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的!
- <>泛型:对集合容器存储的数据类型进行限制
## 注意事项
- 集合容器如果没有加入<>,就可以存储任意数据类型
- 对于ArrayList集合来说,直接打印得到的不算地址值,而是内容。
- 如果内容是空,得到的是空的中括号[];
- 添加的数据必须和类型相匹配!!!!!
- 泛型:装在集合当中的元素,全都是统一的类型!泛型只能是引用类型,不能是基本类型。
## 拓展
ArrayList集合存储基本类型:
使用基本类型对应的包装类:
| 基本类型 | 包装类(引用类型,包装类都位于java.lang包下) |
| -------- | ------------------------------------------- |
| byte | Byte |
| short | Shoot |
| int | Integer 【特殊】 |
| long | Long |
| float | Floot |
| double | Double |
| char | Character【特殊】 |
| boolean| Boolean |
注:
- 从JAD 1.5+开始,支持自动装箱、自动拆箱。
自动装箱:基本类型-->包装类型
自动拆箱:包装类型-->基本类型 同样也在学习。支持 default_0419 发表于 2021-7-11 22:56
同样也在学习。支持
共同加油{:17_1078:} 一起学习,一起加油 与君共勉 silent小泷 发表于 2021-7-12 08:45
与君共勉
:handshake 共同进步 加油!(来自一个四年java狗的鼓励 MissBanana 发表于 2021-7-12 09:26
加油!(来自一个四年java狗的鼓励
{:301_978:} 会的 谢谢支持 ArrayList这种常用又基础的东西建议多读源码,了解扩容,拷贝等机制 自学笔记 Java基础
页:
[1]