接口:即表示集合的抽象数据类型。接口提供了让我们对集合中所表示的内容进行单独操作的可能。 实现:也就是集合框架中接口的具体实现。实际它们就是那些可复用的数据结构。 算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。
2.为什么要用集合框架,当不知道程序运行时会调用多少对象,或者要用更复杂的方式存储对象可以使用java集合框架。 框架的好处 减少设计辛劳 提升速度质量 Collection是一个接口类
Collection接口有两个主要的子接口List和Set。
Collection中可以存储的元素间无序,可以重复组各 自独立的元素, 即其内的每个位置仅持有一个元素,同时允许有多个null元素对象。
list常用的两个子接口Arraylist和Linkedlist
1)ArrayList:
ArrayList数组线性表的特点为:类似数组的形式进行存储,因此它的随机访问速度极快。
ArrayList数组线性表的缺点为:不适合于在线性表中间需要频繁进行插入和删除操作。因为每次插入和删除都需要移动数组中的元素。
要注意下面几点:
如果在初始化ArrayList的时候没有指定初始化长度的话,默认的长度为10
ArrayList是线程不安全的,在多线程的情况下不要使用
2)LinkedList
LinkedList的链式线性表的特点为: 适合于在链表中间需要频繁进行插入和删除操作。
LinkedList的链式线性表的缺点为: 随机访问速度较慢。查找一个元素需要从头开始一个一个的找。
要注意下面几点:
LinkedList和ArrayList的区别和联系
ArrayList数组线性表的特点为:类似数组的形式进行存储,因此它的随机访问速度极快。
ArrayList数组线性表的缺点为:不适合于在线性表中间需要频繁进行插入和删除操作。因为每次插入和删除都需要移动数组中的元素。
LinkedList的链式线性表的特点为: 适合于在链表中间需要频繁进行插入和删除操作。
LinkedList的链式线性表的缺点为: 随机访问速度较慢。
LinkedList不是线程安全的
LinkedList可以被当做堆栈来使用