集合加强:
增强for:
格式:
for(元素的数据类型 变量名 : 数组或者集合名){
//具体的功能代码
}
ArrayList<String> list = new ArrayList<String>();
案例:ArrayList存储字符串、自定义对象并遍历(增强for版)
遍历集合:
1、普通for: get(),size()方法
2、迭代器。
3、增强for。
底层是依赖于迭代器的。
问:这三种遍历方式能不能在遍历集合的同时,删除集合中的元素。
A:普通for。
可以。但是注意索引要--。 (看需求)
B:迭代器。
可以。但是要调用迭代器的remove()方法,不要调用集合的remove()方法。
注意:
遍历集合的同时,往集合中添加元素,
如果使用的是普通的迭代器,是不可以的,会报并发修改异常。
如果使用的是列表迭代器,是可以的,但是要使用列表迭代器中的add()方法。
C:增强for。
不可以。
可变参数:
什么时候使用?
定义的方法,不知道形参的个数的时候就可以考虑使用。
格式:
修饰符 返回值类型 方法名(数据类型... 变量名){ //int... b
}
注意事项:
1、可变参数底层其实是一个数组。
2、如果方法有多个参数,并且有可变参数时候,可变参数必须放参数列表最后。
集合和数组之间的相互转换:
集合转数组:
toArray();
注意:
如果数组的长度大于集合的长度,转换后的数组长度是数组自己的长度。
如果数组的长度小于等于集合的长度,转换后的数组长度是集合的长度。
示例:
集合:10 20 30 (Integer)
数组长度是5: 10 20 30 null null
数组长度是3: 10 20 30
数组长度是2: 10 20 30
数组转集合:
Arrays类中的asList()。
注意:
数组转成集合后,集合中的元素不能添加或删除。
要转集合的数组必须是引用类型,如果基本类型,会直接吧该基本类型的数组当做集合中的一个元素。
ArrayList集合的嵌套:
关键点:
1、创建一个学科集合。
ArrayList<ArrayList<Person>> list = ArrayList<>();
2、遍历的时候,通过增强for的嵌套遍历,获取到每一个学员,然后输出学员的信息。
|
|