第五章:集合框架:决复杂的数据存储问题
Collection接口-----List接口-------Set接口
List接口-----ArrayList类-----LinkedList类
Set接口-----HashSet类---TreeSet类
Map接口-----HashMap类------Hashtable类
List接口是Collection接口的子接口,它可以保存重复,有序的元素。List接口大量扩充了Collection接口。
返回类型 | 方法名称 | 描述 |
Boolean | Add(Objec o) | 添加元素到集合末尾 |
Int | Size() | 集合列表中元素个数 |
Object | get(int index) | 返回指定索引位置的元素,从0开始 |
Boolean | RemoveAll(Collection col) | 删除所有元素 |
Boolean | Contains(Object o) | 判断是否存在指定元素 |
Boolean | Remove(Object o) | 删除元素 |
Object | Remove(int index) | 删除指定索引位置元素 |
ArrayList类,其容量可以动态增加,动态数组。增长原来的一倍。
实例化ArrayList
List list=new ArrayList()
循环变量经常作为集合的索引,
2:LinkedList 表示链表操作类,他同时实现了List和Queue接口。LinkedList中的存放元素按照先进先出方式排序,
HashMap | HashTable |
允许出现空值 | 不允许出现空值 |
线程异步 效率较高 | 线程同步 效率低 |
继承自AbstactMap | 继承自 Dictionary |
泛型:声明类时不指定类中属性的具体类型,而是在声明级实例化对象时由外部指定。泛型可以提高数据安全性
类名称<具体类> 对象名称=new 类名称<具体类>;
Map<String,Student> stuMap=new HashMap<String,Student>();
集合操作:添加元素,取出元素;
存储数据:考虑数据类型:数值型,对象型
2实例化对象,考虑使用哪种集合类,考虑是否加泛型。
调用方法,判断该数据是否存在
注意:如果涉及到堆栈,队列等操作考虑用Vector,对于需要快速删除,插入元素的场合,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。