一、增强for循环:
1.语法格式
ArrayList<String>list = new ArrayList<>();
for(集合里面存储的数据类型 变量名 : 集合/数组变量名){
}
for(Stringstr : list){
}
2.增强for循环的特点:
1).没有循环变量;一般用于不需要循环变量的循环操作;如果在循环中需要循环变量,还是使用普通for循环;
2).可以遍历集合,数组;
3).增强for循环底层就是使用的"迭代器"。因为仍然会产生并发修改异常;
二、静态导入
1.当我们在某个类中需要频繁的使用某个其它类中的一些静态方法时,我们之前都是用:类名.静态方法名的形式;
2.如果频繁使用时,我们会反复的使用类名;
3.我们可以对这些静态方法先期导入;
格式:
import static 包.包.包.类名.静态方法名;
4.静态导入后,在类中再使用静态方法,只需指定方法名即可,无需类名做前缀;
5.可以使用通配符:
格式:
import static 包.包.包.类名.*;
说明:
1.此通配符,只导入"静态方法";
例:
import static java.lang.Math.abs;
import static java.lang.Math.max;
三、可变参数
1.定义一个方法,这个方法可以接收0-- 无限多的某类型实参。这种形参就是:可变参数;
2.格式:
public int getMax(int ... nums){
}
注意:数据类型:可以是任何的Java类型(基本数据类型和引用数据类型);
3.调用getMax()方法时,可以传递:0 -- 无限多;
getMax();//不传参数可以。
getMax(1432,432,43,25,432,432,43,25,325,2,432,4532);//传多个参数也可以;
4.注意:
1).可变参数可以同其它形参共存,但可变参数一定要位于参数列表的末尾;
5.可变参数,在方法内部,是按照"数组"的方式工作的。
通过反编译后,我们也看出,可变形参也被编译为数组的形式;
6.因为可变参数就是数组的形式,所以不能跟数组的形参构成"重载"
四、asList方法
Arrays类的asList()方法:
public static <T> List<T> asList(T...a):
例:
List <Integer> arrayList = Arrays.asList(1,2,3,4,5,6)
如果不加泛型,则可以放入各种类型的元素
注意:这样创建的集合不能添加或删除元素,会报java.lang.UnsupportedOperationException异常。可以修改其中的元素。