java.util.Collection接口
所有单列集合中最顶层的接口,里面定义了所有单列集合共性方法
任意的单列集合都可以使用Collection接口中的方法
public boolean add(E e); 向集合中添加元素
public boolean remove(E e);向集合中删除元素
public void clear(); 清空集合所有元素
public boolean contains(E e);判断集合中是否包含某个元素
public boolean isEmpty(); 判断集合是否为空
public int size(); 获取集合的长度
public Object[] toArray(); 将集合转变成数组
迭代:取出元素前判断有没有集合中元素,如果有就取出,继续判断,如果还有继续取出,直到集合中所有元素全部被取出,这种方式叫迭代
java.util.Iterator接口:迭代器(对集合进行遍历)
常用方法
1 public E next():返回迭代的下一个元素
取出下一个元素
2 public boolean hasNext():如果仍有元素可以迭代,则返回true
判断集合中还有没有下一个元素
Iterator迭代器是一个接口,无法直接使用,需要使用Iterator接口的实现类对象
Collection接口中有一个方法,叫Iterator(),这个方法返回的就是迭代器的实现类对象
Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
List集合
特点:
1 有序:存储和取出的元素顺序一致
2 可重复:存储的元素可以重复
List集合特有方法:
void add(int index,E element):在此集合中的指定位置插入指定元素
E remove(int index):删除指定索引处的元素,返回被删除的元素
E set(int index,E element):修改指定索引处的元素,返回被修改的元素
E get(int index):返回指定索引处的元素
ConcurrentModificationException:当不允许这样的修改时,可以检测到对象的并发修改方式来抛出此异常
Listlterator:列表迭代器
1 通过list集合的listlterator()方法得到,所以说它是List集合特有的迭代器
2 允许程序员沿任意方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
Listlterator中的常用用法
1 E next():返回迭代中的下一个元素
2 boolean hasNext():如果迭代具有更多元素,则返回true
3 E previous():返回列表中的上一个元素
4 boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
5 void add(E e):将指定元素插入列表
增强for的格式
for(元素数据类型 变量名:数组或Collection集合){
此处使用变量即可,该变量就是元素
}
数据进入栈模型的过程为进栈
数据离开栈模型的过程为出栈
数据从后端进入队列模型的过程为入队列
数据从前端离开队列模型的过程为出队列
队列是一种数据先进先出的模型
常见数据结构之数组
查询数据通过索引定位,查询任意数据耗时相同,【查询效率高】
删除数据时,要将原始数据删除,同时后面每个数据前移,【删除效率低】
添加数据时,添加数据后的每个数据后移,再添加元素,【添加效率极低】
List集合常用子类
ArrayList:底层数据结构是数组,查询快,增删慢
LinkedList:底层数据结构是链表,查询慢,增删快
set集合特点
不包含重复元素的集合
没有带索引的方法 ,所以不能使用普通for循环遍历
哈希值:
是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值
Object类有一个方法可以获得对象的哈希值
public int hashCode():返回对象的哈希值
HashSet集合特点
1 底层数据结构是哈希表
2 对集合的迭代顺序不做任何保证,也就是说不保证存储和取出的元素顺序一致
3 没有带索引的方法,所以不能使用普通for遍历循环
4 由于是Set集合,所以是不包含重复元素的集合