import static静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import util.....ClassName;而静态导入是这样:import static util.....ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个 .* ,意思是导入这个类里的静态方法。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用。

  这种方法的好处就是可以简化一些操作,例如打印操作System.out.println(...);就可以将其写入一个静态方法print(...),在使用时直接print(...)就可以了。

import java.util.ArrayList;
import static java.util.Collections.*;
import static java.lang.System.*;

public class Demo10 {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(13);
		list.add(9);
		list.add(10);
		list.add(19);
		
		//排序
		sort(list);
		out.println("集合的元素:"+ list);
		out.println("索引值:"+ binarySearch(list,13));
		out.println("最大值:"+ max(list));
	}

}


静态导入要注意的事项: 

  1. 如果静态导入的成员与本类的成员存在同名的情况下,那么默认使用本类的静态成员,如果需要指定使用静态导入的成员,那么需要在静态成员前面加上类名。

增强for循环

增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。

不能获取下标等。

动态导入 java_iterable

这里用到了java自带的反编译器工具可以在jdk目录下的bin文件夹中找到javap,使用时直接在cmd命令窗口里面输入javap,会反馈一些帮助告诉你怎么用,javap -c -p -l 编译的class文件.class

增强for循环的作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)
增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。
增强for循环的格式:
  for(数据类型  变量名  :遍历的目标){
  }
增强for循环要注意的事项:
1. 增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的过程中不准使用集合
对象对集合的元素个数进行修改。
2. 迭代器遍历元素与增强for循环变量元素的区别:使用迭代器遍历集合的元素时可以删除集合的元素,而增强for循环变量集合的元素时,不能调用迭代器的remove方法删除元素。
3. 普通for循环与增强for循环的区别:普通for循环可以没有变量的目标,而增强for循环一定要有变量的目标。

import java.util.ArrayList;

public class Demo10 {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		list.add(13);
		list.add(9);
		list.add(10);
		list.add(19);
//		增强for循环
		for(Integer t : list){
			System.out.println(t);
		}
	}

}