java第十四课(4.20) list→Set→迭代器→Map→泛型
虚线框代表接口 实线代表实现类
通用方法有:clear()←清空所有元素、 isEmpty()←查找该集合是否为空,返回布尔值、 iterator()←迭代器方法、 toArray()←将一个集合变成序列
List: 分为ArrayList LinkedList 其特点是有序不唯一(子类也继承)
ArrayList用来遍历元素和随机访问元素的效率比较高
LinkedList采用铁索连环的储存方式,插入和删除元素的效率比较高
方法名 | 说明 |
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开始 |
Set: 比较常用的是HashSet 通常使用Set的方法都会实例化其子类对象HashSet 其特别是无序(没有下标,只能用迭代器或者增强型的for进行遍历) 唯一 Set存放的是对象的引用 Set里面不存在Get方法,因为无序。若需要遍历只能使用迭代器或者增强型的for。
迭代器Iterator:
迭代器的使用方法比较固定——获得迭代器→使用循环判断值是否为空
获得迭代器:Iterator itor=set.iterator() 由于Collection内有.iterator()的方法,所以在Set中可以直接引用其方法,其方法的返回值是Iterator,需要用Iterator类型的值去接收;
判断是否值为空:while(itor.hasnext()){ itor.next() } Iterator类型中有hasnext()这个方法,返回值是布尔类型,用于判断是否为空,为空则返回true,否则是false。 next()这个方法返回值是object类型,这个就是返回值的对象了,若为空值会报错,所以一般首先都用hasnext去判断后再使用next。
Map:跟Collection没有任何关系!!!储存一组键值对象,提供key到value的映射(类似通过学号找学生一样),key值是唯一。
泛型:泛型就是将对象类型作为参数,指定到其他方法或者类上,从而保证类型转换(不用经常强转),泛型集合中的数据不会再转换成object了