(一)接口
接口:表示集合的抽象数据类型,接口允许我们操作集合时不必关注具体实现,从而达到"多态"
在面向对象编程语言中,接口通常用来形成规范
(二)使用集合框架的好处
1、容量自增长
2、提供了高性能的数据结构和算法,使编码更轻松,提高了程序速度和质量
3、允许不同API之间的互操作,API之间可以来回传递集合
4、可以方便的扩展或改写集合,提高代码的复用性和可操作性性
5、通过使用JDK自带的集合类,可以降低代码维护和学习新API成本
Iterator接口
Iterator接口,用于遍历集合元素的接口
在Iterator接口中定义的三个方法:
1、boolean类型 ——hasNext()如果仍有元素可以迭代,则返回true
2、E类型——next()返回迭代的下一个元素
3、void类型——remove()从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)
集合工具类Collection:存放单一的值
特点:
1、可以存放不同类型的数据,而数组只能存放固定类型的数据
2、当使用Arraylist子类实现的时候,初始化长度为10,当长度不够的时候会自动的进行扩容操作
3、剩下的读api帮助文档
Listlterator接口:
Listlterator是一个功能更加强大的迭代器,它继承于lterator接口,只能用于各种List类型的访问,
可以通过listlterator()方法产生一个指向List开始处的Listlterator,还可以调用listlterator(n)方法创建
一个一开始就指向列表索引为n的元素处的Listlterator
特点:
1、允许我们向前,向后两个方向遍历List
2、在遍历时修改List的元素
3、遍历时获取迭代器当前游标所在位置
List集合:
List的元素有序并且可以重复的集合
List的主要实现:ArrayList,LinkList,Vector
List常用方法:增(add(),addAll())、删(remove(),removeAll(),clear())、改(set)、获取(get(),subList(),indexOf(),size())、判断(isEmpty(),contains())
Set集合:
Set集合元素无序,并且没有重复对象
Set的主要实现类:HashSet,TreeSet
Set常用方法:增(add(),addAll())、删(remove(),removeAll(),clear())、获取(get(),listlterator(),size())判断(isEmpty(),contains())
Map接口:
Map是一种把键对象和值对象映射的集合,它的没一个元素都包含一对键对象和值对象,Map没有
继承Collection接口,从Map集合中检测元素时,只要给出键对象,就会返回对应的值对象
Map的常用实现类:HashMap、TreeMap、HashTable、LinkHashMap、ConcurrentHashMap
Map常用方法:增(put(),putAll()、删(remove(),clear())、获取(get(),size(),entrySet(),keySet(),values())、判断(isEmpty(),containsValue)
重点:
HashMap、HashTable、TreeMap的区别
TreeMap:基于红黑树实现
HashMap:基于哈希表实现
HashTable:和HashMap类型,但它是线程安全的,这意味着同一时刻多个线程可以同时写入
HashTable并且不会导致数据不一致