总述
Collection 接口存储一组不唯一,无序的对象
List 接口存储一组不唯一,有序(插入顺序)的对象Set 接口存储一组唯一,无序的对象
Map 接口存储一组键值对象,提供key到value的映射
1.ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。
2.LinkedList采用链表存储方式。插入、删除元素时效率比较高。
3.Vector和ArrayList的异同
实现原理相同,功能相同,很多情况下可以互用
两者的主要区别如下
Vector线程安全,ArrayList重速度轻安全,线程非安全
长度需增长时,Vector默认增长一倍,ArrayList增长50%
4.Hashtable和HashMap的异同
实现原理相同,功能相同,在很多情况下可以互用
两者的主要区别如下
Hashtable继承Dictionary类,HashMap实现Map接口
Hashtable线程安全,HashMap线程非安全
Hashtable不允许null值,HashMap允许null值
开发过程中,最好使用ArrayList和HashMap
1.ArrayList集合类
问题:
存储多条角色信息,获取角色总数,逐条打印出各个角色信息
分析:
通过List接口的实现类ArrayList实现该需求
元素个数不确定
要求获得元素的实际个数并输出
按照存储顺序获取并打印元素信息
List接口常用方法:
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