1. 数组封装
1.1 数组的增删改查
查询
更改
添加
删除
1.2 使用
2. 集合
Java集合是使程序能够存储和操纵元素不固定的一组数据。
2.1 继承体系
Collection 是集合,两个直接子接口是List和set
List 特性 : 有序 可重复,保证数据的添加顺序和取出顺序一致
Set 特性 : 无序 不可重复,不能保证数据的添加和取出顺序一致
List 有三个子类 :
1. ArrayList : 底层是数组,查询和更改效率极高
2. LinkedList : 底层是双向链表,添加和删除效率要高一些
3. Vector : 底层也是数组,是线程安全,已废弃,不推荐使用,已被ArrayList代替
Set有两个子类 :
1. HashSet : 底层是散列表
2. TreeSet : 底层是二叉树
2.3 Collection
Collection作为集合类的父类,所以,collection中的方法,是所有集合类都有的方法
常用方法 :
使用
2.4 Iterator
Iterator 迭代器 :迭代器是一种模式,它可以使遍历和被遍历的对象相分离,我们就不再关心底层是什么数据结构,是如何进行数据存储的只要拿到迭代器对象,就可以进行遍历
collection中 提供了一个 iterator() 方法 用于获取迭代器对象 集合.iterator();
迭代器中,有三个方法 :
1 boolean hasNext() : 判断游标下是否还有元素,默认指向顶端,并没有指向第一个元素
2 E next() : 将迭代器游标向下移动一位,并取出该元素
3 remove () : 删除当前执行的元素,会把集合中的也删除
注意 :
迭代器一旦创建,集合不能添加和删除,如果添加和删除了,需要重新生成迭代器
增强for循环forEach 就是迭代器的简写方式
2.5 contains remove
contains(Object o) : 判断是否包含某个元素
remove(Object o ) : 删除指定元素
这两个方法,底层都会去调用equals方法进行比较
2.6 forEach
增强for循环forEach 就是迭代器的简写方式
2.7 List
2.7.1 ArrayList
List 特性 : 有序 可重复,保证数据的添加顺序和取出顺序一致
List 有三个子类 :
1. ArrayList : 底层是数组,查询和更改效率极高 ,默认初始化容量为10,扩大为原来的1.5倍,非线程安全,创建对象的时候,没有容量,就是0 , 当第一次添加数据的时候,才会初始化容量
2.LinkedList : 底层是双向链表,添加和删除效率要高一些
3. Vector : 底层也是数组,是线程安全,已废弃,不推荐使用,已被ArrayList代替,默认认初始化容量为10,扩大为原来的2倍
注意 :
集合中只能保存引用数据类型,如果添加的是基本类型的话,会先进行自动装箱为对应的包装类,然后发生多态转型为Object类型
用法 :