java-jdk1.5靜態導入和增強循環

  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自帶的反編譯器工具可以在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);
		}
	}

}
發佈了35 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章