Collection集合
集合是java中提供的一种容器,用来存放多个数据
数组长度是固定的,集合长度是可变的
数组中存储的可以是基本类型可以是对象,而集合只能存对象
集合的框架
1.会使用集合存储数据
2.会遍历集合,把数据取出来
3.掌握每种集合的特性
connect接口
定义所有单列集合中共性的方法,所有的单列集合都可以使用这个共性的方法
没有带索引的方法
list接口:
1.有序集合,存储和取出的顺序相同
2.允许存储重复的元素
3.有索引,可以使用普通的for循环遍历
set接口:
1.不可以存储重复元素
2.没有索引(不能用普通的for循环遍历)
集合框架的学习方式
1.学习顶层(学习顶层接口或者是抽象类中共性的方法,这样所有的子类都可以用)
2.使用底层:顶层不是抽象类就是接口,所有只能使用底层方法进行对象的创建
集合的常用功能
一个集合的实例对象(多态创建)直接打印可以直接得到里面的元素而不是地址值
iterator接口介绍
迭代器:通用取出元素的方式,在取出元素的时候先要判断集合中有没有元素,如果要是有元素就取出来,再继续判断如果再有就再取出来,直到全部取出为止,这种取出方式就是迭代
迭代器常用方法:
hasnext():
判断集合中有没有下一个元素,有就返回true,没有就返回false
next():
取出集合中的下一个元素
迭代器的使用步骤:
1.先使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接受(多态)
2.使用Iterator接口中的方法hasNext判断是不是没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素
Collection<String> collect1 = new ArrayList<>();
Iterator<String> it = collect1.iterator();
利用循环和迭代器把元素取出:
不知道循环次数(while循环),结束条件是对象。hasNext是不是有0
增强for循环(重要)
底层也是使用迭代器,使用for循环的格式
所有的单列集合都可以使用怎强for
格式:
for(集合/数组的数据类型 变量名:集合名/数组名)
增强for循环的目标只能是数组或者是集合
泛型的概念
泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候就可以使用泛型
泛型也可以看成一个变量,用来接受数据类型
E:元素element
T:Type类型
创建对象进行使用的时候在<>中指定泛型,这样就把数据类型作为参数传递给E
使用泛型的好处
1.避免了类型转换的麻烦
2.把运行期的异常提升到了编译期
定义和使用泛型的类
泛型可以接受任何数据类型,Integer,String,Student
创建对象的时候明确泛型的类型
]\
定义类的时候,类名称后面要写<E>。
含有泛型的方法
定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间
格式:
修饰符 <泛型> 返回值类型 方法名(参数列表(使用泛型)){
}
含有泛型的方法,在调用方法的时候确定泛型的数据类型
传递什么类型的参数,泛型就是什么数据类型
含有泛型的接口
类指定泛型的类型
实现类也使用泛型(相当于定义了含有泛型的类)