集合类
Collection接口
定义的是所有单列集合中共性方法
创建对象使用多态 Collection<String> coll = new ArrayList<>()
add() 把给定的对象添加到当前集合中,返回一个boolean值
remove() 在集合中删除指定的对象,返回一个boolean值
contains() 判断当前集合是否包含给定对象,返回一个boolean值
isEmpty() 判断当前集合是否为空,返回一个boolean值
size(0 返回当前集合元素个数
toArray() 把当前集合存储到数组中
clear() 清除集合中元素,集合还是存在
Iterator接口 迭代器对集合进行遍历
hasNext() 判断集合中还有没有下一个元素
next() 取出集合中的下一个元素
Collection接口中的iterator()返回的就是迭代器的实现类对象
集合是什么类型,迭代器就是什么类型
Iterator<String> it = coll.iterator() 指向集合索引 -1
增强for循环 (底层使用的是迭代器)
用来遍历数组或集合
for(集合/数组的数据类型 变量名:集合/数组名)
List集合:有序的集合,允许存储重复元素,有索引
Set集合:不允许存储重复元素,没有索引
泛型
一种未知的数据类型,可以看成是变量,用来接收数据类型
集合不适用泛型,默认就是Object类型,可以存储任意数据类型的数据,但不安全,会引发异常
定义泛型类
class 类名<泛型>{}
定义含有泛型的方法
修饰符 <泛型> 返回值类型 方法名(参数列表(泛型类型)){}
定义一个含有泛型的默认方法
修饰符 static <泛型> 返回值类型 方法名(参数列表(泛型类型)){}
含有泛型的接口使用方式
1.定义接口的实现类,实现接口,指定接口的数据类型
2.接口使用什么泛型,实现类就使用什么泛型
泛型通配符
当不知道用什么数据类型来接收的时候,此时可以用?,?表示未知通配符
使用方式
不能创建对象使用,能作为方法的参数使用
泛型上限限定:? extends E
代表使用的泛型只能是E类型的本身或子类
泛型下线限定:? super E
代表使用的泛型只能是E类型的本身或父类