Java集合框架中分为两大类:装载数据的集合类和操作数据的工具类。
Java集合就像一种容器,可以通过相应的方法将多个对象的引用放在容器中。
容器中的(对象的引用)类型都为Object类型,所以可以通过向上转型存放任意类型的
对象引用,但从容器中取出元素时需要向下转型(强制)为原来的类型。
值得注意的是,集合类容器中的元素不存放基本数据类型,可存放包装类型。
装载数据的集合类:集合类通过Collection接口定义了Collection接口定义了集合类
共有的基本方法,这些方法分为基本操作(添加、删除、修改和查找容器元素)、
批量操作(批量添加、删除容器元素)和数组操作(集合与数组转换)
Set、List、Map接口
1、List接口:它继承于Collection接口,是一个允许存在重复元素的有序集合。
List接口的实现类常用的有顺序表集合ArrayList和LinkedList(链表集合)
ArrayList(顺序表集合):ArrayList类扩展了AbstractList并实现List接口,
该类提供了一个随需要而增长的动态数组。在Java中,标准数组是固定长度的,
在数组创建之后,它们不能被加长或缩短,这也就意味着我们必须事先知道数组可以
容纳多少元素。但是,有时直到运行时才能知道需要多大的数组。ArrayList类解决了
这个问题。
特点:对于使用索引查询元素效率较高(arrayList.get(int index))。
但删除或插入元素效率较低(使用了数组,需要移动后面的元素以调整索引的顺序)。它的使用最广泛,
可在集合元素增加或删除操作不频繁时使用,最适合做查询操作。
注:数组使用索引查询效率较高,增加和删除操作效率较低,和ArrayList实现的原理有关。
LinkedList(链表集合):LinkedList类扩展AbstractSquentiaList并实现List接口
特点:因为LinkedList是使用双向链表,所以针对频繁的插入和删除元素,使用LinkedList类效率较高。
它的适合实现栈和队列,当需要在集合中间位置频繁增加或删除元素时建议使用LinkedList类。
注:堆栈数据结构
栈:先进后出,如同单向停车道一般,先进入的车子只有等后面进入的车子都走完后才能出去
队列:先进先出,如同排队,排在第一的人先进去。
Iterator接口是一种用于遍历集合的工具。所谓遍历,是指从集合中取出每个元素的过程。
boolean hasNext() //判断游标右边是否有元素
Object next() //返回游标右边的元素并将游标移动到下一个位置
void remove() //删除游标左边的元素
Java集合类是基于Connection接口,再根据不同需求分类为Set、List和Map三大接口
Java集合就像一种容器,可以通过相应的方法将多个对象的引用放在容器中。
容器中的(对象的引用)类型都为Object类型,所以可以通过向上转型存放任意类型的
对象引用,但从容器中取出元素时需要向下转型(强制)为原来的类型。
值得注意的是,集合类容器中的元素不存放基本数据类型,可存放包装类型。
装载数据的集合类:集合类通过Collection接口定义了Collection接口定义了集合类
共有的基本方法,这些方法分为基本操作(添加、删除、修改和查找容器元素)、
批量操作(批量添加、删除容器元素)和数组操作(集合与数组转换)
Set、List、Map接口
1、List接口:它继承于Collection接口,是一个允许存在重复元素的有序集合。
List接口的实现类常用的有顺序表集合ArrayList和LinkedList(链表集合)
ArrayList(顺序表集合):ArrayList类扩展了AbstractList并实现List接口,
该类提供了一个随需要而增长的动态数组。在Java中,标准数组是固定长度的,
在数组创建之后,它们不能被加长或缩短,这也就意味着我们必须事先知道数组可以
容纳多少元素。但是,有时直到运行时才能知道需要多大的数组。ArrayList类解决了
这个问题。
特点:对于使用索引查询元素效率较高(arrayList.get(int index))。
但删除或插入元素效率较低(使用了数组,需要移动后面的元素以调整索引的顺序)。它的使用最广泛,
可在集合元素增加或删除操作不频繁时使用,最适合做查询操作。
注:数组使用索引查询效率较高,增加和删除操作效率较低,和ArrayList实现的原理有关。
LinkedList(链表集合):LinkedList类扩展AbstractSquentiaList并实现List接口
特点:因为LinkedList是使用双向链表,所以针对频繁的插入和删除元素,使用LinkedList类效率较高。
它的适合实现栈和队列,当需要在集合中间位置频繁增加或删除元素时建议使用LinkedList类。
注:堆栈数据结构
栈:先进后出,如同单向停车道一般,先进入的车子只有等后面进入的车子都走完后才能出去
队列:先进先出,如同排队,排在第一的人先进去。
Iterator接口是一种用于遍历集合的工具。所谓遍历,是指从集合中取出每个元素的过程。
boolean hasNext() //判断游标右边是否有元素
Object next() //返回游标右边的元素并将游标移动到下一个位置
void remove() //删除游标左边的元素