1.静态导入
JAVA 5中,新增加了一个特性,静态导入 ( static import ) .
1.1.书写方式: import static Java.lang.*;
1.2.作用:当希望使用某类的静态成员时,就可以使用静态导入,
在具体引用时可以简化书写,但也一定程度上降低了可读性,所以
不建议使用一些简单的静态导入,如import static java.lang.System.out;
1.3.与一般导入的区别:一般import导入重点在导入一个类文件,而
import static重点要导入静态的方法;
1.4.备用:当类名重名的时候,需要制定具体的包名;
当方法重名时,指定具备所属的对象或者类.
2.可变参数
新特性:可变参数(VariableParameter)
2.1.书写:public static int add(int x,int ... args){}
位置:可变参数放在引用参数的最后;
代码:三个点句号...
空格:前后可有可无;
类型:同一类型;
2.2.编译时作为数组形式访问
编译器对这些元素进行数组的封装,而这个封装动作,是在底层完成的;
封装为数组后直接传递给方法使用;
3.增强for循环
3.1.语法格式:
增强for循环括号里写两个参数,
第一个:声明一个变量,
第二个:集合变量,可以是数组或实现了Iterator接口的集合类;
for(type类型 变量名 : 集合/数组变量名 ) { }
3.2.高级for循环和传统for循环的区别:
3.2.1.示例
/* for(int i=0;i<args.length;i++){
sum+=args[i];
}*/
for(int arg:args){
sum+= arg;
}
return sum;
3.2.此处集合类实现Iterator有什么意义?
高级for循环在使用时,必须要明确被遍历的目标.这个目标,可以是Collection集合或者数组,如果遍历Collection集合,
在遍历过程中还需要对元素进行操作,比如删除,这时就要需要使用迭代器.
3.3.如果此处数组在遍历中要操作元素呢?
如果遍历数组,还需要对数组元素进行操作,建议还是用传统for循环;
因为可以定义角标通过角标操作元素;
如果只为遍历获取,可以简化成高级for循环,它的出现为了简化书写.
3.4.高级for和集合示例:
//3.4.1.集合 Collection:
List list = new ArrayList();
list.add("aaa");
for(Object obj : list)
{
String s = (String) obj;
System.out.println(s); }
//3.4.2双列集合 Map:
Map map = new HashMap();
map.put("a", "aaa");
Interator iter=map.entrySet().iterator();
while(iter.hasNext()) {
//遍历键值对
Map.Entry entry = (Entry) iter.next();
//获取K,V
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println(key + "=" + value); }
3.5注意:操作元素
集合迭代注意问题:在迭代集合的过程中,不能对集合进行增删操作(会报并发访问异常;
可以用子类listIterator: 有增删的方法.
增强for循环注意问题: 在使用增强for循环时,不能对元素进行赋值;