Java高级特性——集合框架
1、集合框架
①不知道程序运行需要多少对象
②需要多个数组——对应等更复杂的方式存储对象
可以使用Java集合框架
Java集合框架提供了一套性能优良,使用方便的接口和类,它们位于Java.util包中
Collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序(插入顺序)的对象
Set接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
2、List接口的实现类
①ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
②LinkedList采用链表存储方式,插入、删除元素时效率比较高
3、ArrayList常用方法
方法名 | 说明 |
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 remove(int index) | 从列表删除指定位置元素,起始索引位置从0开始 |
Collection接口常用通用方法还有:clear( )、isEmpty( )、iterator( )、toArray( )
在set 类,List类中都能用
clear( )清空集合
isEmply( )判断集合是否空集合
iteration( )返回集合迭代器
toArray( )把集合变成序列
集合中不能添加基本数据类型——>系统会把添加的数据包装成包装类
4、LinkedList常用方法
在插入,删除元素,效率高
方法名 | 说明 |
void addFirst(Object o) | 在列表的首部添加元素 |
void addLast(Object o) | 在列表的末尾添加元素 |
object getFirst( ) | 返回列表中的第一个元素 |
Object getLast( ) | 返回列表中的最后一个个元素 |
Object removeFirst( ) | 删除并返回列表中的第一个元素 |
Object removeLast( ) | 删除并返回列表中的最后一个元素 |
5、ArrayList和LinkedList
相同:①都是集合框架中List的两个实现类
②存放的数据都是有序的,可以通过get(int index)拿出来
不同:①ArrayList适合遍历,取值,LinkedList插入,删除,效率高(链表方式,只影响前一个元素的内存地址指向)
6、set接口
set接口存储一组唯一,无序的对象
HashSet是set接口常用的实现类
set中存放对象的引用(内存地址)
set接口采用对象的equals()方法比较两个对象是否相等,如果true就不然对象加进来(唯一)
set接口不存在get()方法
7、迭代器
遍历无序的set集合
①增强for
②Iterator迭代器
获取Iterator:Collection接口的iterator( )方法
Iteratord的方法:
boolean hasNext( ):判断是否存在另一个可访问的元素
object next( ):返回要访问的下一个元素
Iterator iterator = set.iterator( );
while(iterator.hasNext(1){
System.out.println(iterator.next());
}