详谈java集合框架
1、为什么使用集合框架
当我们并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架
2、Java集合框架包含的内容
接口:(父类)Collection接口下包含List(子类)接口和Set(子类)
接口List接口下又包含(ArrayList集合实现类和LinkedList集合实现类)
Set接口下又包含(HashSet集合实现类和TreeSet集合实现类)
接口:(父类)Map接口下包含(HashMap集合实现类和TreeMap集合实现类)
*Collections接口提供了对集合进行排序、遍历等多种算法实现*Java集合框架为我们提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
3、Collection、List和Set的特性:
Collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序(插入顺序)的对象
Set接口存储一组唯一,无序的对象Map接口存储一组键值对象,提供key到value的映射
4、ArrayList集合和LinkedList集合的优点
1、ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
2、LinkedList采用链表存储方式。插入、删除元素时效率比较高
List接口提供相应方法remove()、contains(),直接使用即可
List接口常用方法:
booleanadd(Objecto) 在列表的末尾顺序添加元素,起始索引位置从0开始
voidadd(intindex,Objecto)在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间
intsize() 返回列表中的元素个数
Objectget(intindex) 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换
booleancontains(Objecto)判断列表中是否存在指定元素
booleanremove(Objecto)从列表中删除元素
Objectremove(intindex)从列表中删除指定位置元素,起始索引位置从0开始
LinkedList的特殊方法
voidaddFirst(Objecto)在列表的首部添加元素
voidaddLast(Objecto)在列表的末尾添加元素
ObjectgetFirst() 返回列表中的第一个元素
ObjectgetLast() 返回列表中的最后一个元素
ObjectremoveFirst() 删除并返回列表中的第一个元素
ObjectremoveLast() 删除并返回列表中的最后一个元素
Map接口常用方法:
Objectput(Objectkey,Objectval)以“键-值对”的方式进行存储
Objectget(Objectkey)根据键返回相关联的值,如果不存在指定的键,返回null
Objectremove(Objectkey)删除由指定的键映射的“键-值对”
intsize()返回元素个数
SetkeySet()返回键的集合
Collectionvalues()返回值的集合
booleancontainsKey(Objectkey)如果存在由指定的键映射的“键-值对”,返回true