集合框架是为了表示和集合操作而规定的一种同意的标准结构。集合框架都包含三大块内容:对外的接口,接口的实现和集合运算的算法。
接口:表示集合的抽象数据类型 实现集合框架中的具体实现。算法:在一个实现了某个集合框架中接口的对象身上的某中有用的计算方法,如查找排序等
java中集合框架的两大类接口:Collection和Map,其中collection又有两个子接口:List和Set。所以说java集合框共有三大类接口:List,Set,Map。
它们的共同点:都是集合接口都可以用来存储很多对象。
他们的区别:Collection 接口存储一组不唯一(允许重复),无序的对象 Set接口继承Collection接口,存储一组唯一(不允许重复),无序的对象
List接口继承collection,存储一组不唯一(允许重复),有序(以元素插入的次序来放置元素,不会重新排列)的对象
Map接口存储一组成对的建-值对象,提供Key(建)到Value(值)的隐射。Map中的key不要求有序,但不允许重复。Value同样不要求有序,但允许重复。
Inerator接口是负责定义访问和遍历元素的接口
ArrayList对数组进行了封装,实现了长度可变的数组。Arraylist存储数据的方式和数组相同,都是在内存中分配连续的空间。它的优点在于遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式,优点在于插入、删除元素是效率比较高。它提供了额外的addFirst()、addLast()、removeFirst()、removeLast()等方法,可以在LinkedList的首部或尾部进行插入或删除操作。这些方法使得LinkList可被作堆栈(stack)或者队列(queue)。
ArrayList接口定义的各种常用方法:boolean add(Object o)在列表末尾顺序添加元素,起始索引从0开始。
void add(int index,Object o)在指定的位置添加元素,原索引位置及其后面的元素依次后移。(新添加元素的索引位置必须介于0和列表中元 素个 数之间)。
int size()返回列表的元素个数
Object get(int index)返回指定索引位置处的元素 注意:取出的元素是Object类型,使用前需要进行强制类型转换
boolean contains(Object o)判断列表中是否存在指定元素
boolean remove(Object o)从列表中删除元素
Object remove(int index)从列表中删除指定位置元素,起始索引位置从0开始
LinkedList的一些特殊方法:void addFirst(Object o)在列表的首部添加元素
void addLast(Object o)在列表的末尾添加元素
Object getFirst()返回列表中的第一个元素
Object getLast()返回列表中的最后一个元素
Object removeFirst()删除并返回列表中的第一个元素
Object remove Last()删除并返回列表中的最后一个元素