Java 增強for循環 泛型


增強for循環
專門用來遍歷數組和集合的。它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對集合中的元素進行增刪操作。
格式:
for(元素的數據類型 變量 : Collection集合or數組){
}
例子

public static void main(String[] args) {
//		普通for
		Collection<Person>col = new ArrayList<Person>();
		col.add(new Person("熊大",22));
		col.add(new Person("熊二",10));
		col.add(new Person("吉吉國王",30));
		ArrayList<Person> list = (ArrayList<Person>)col;
		for(int i =0;i<list.size();i++) {
			System.out.println(list.get(i));
		}
//		增強for   沒有下標
		/*for(要遍歷的數據類型 變量名:容器名){
		 }*/
		for(Person p:col) {
			System.out.println(p);
		}

  

增強for循環和老式的for循環有什么區別?
遍歷數組,集合時,如果僅為遍歷,可以使用增強for,如果要對數組的元素進行操作,使用普通for循環可以通過下標操作。
泛型

泛型,用來靈活地將數據類型應用到不同的類、方法、接口當中。將數據類型作為參數進行傳遞。

優點
將運行時期的ClassCastException,轉移到了編譯時期變成了編譯失敗。
避免了類型強轉的麻煩。泛型不進class文件

例子

 public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("abc");
        list.add("oracle");
        //list.add(5);//當集合明確類型后,存放類型不一致就會編譯報錯
        //集合已經明確具體存放的元素類型,那么在使用迭代器的時候,迭代器也同樣會知道具體遍歷元素類型
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
    String str = it.next();
//當使用Iterator<String>控制元素類型后,就不需要強轉了。獲取到的元素直接就是String類型
            System.out.println(str.length());
        }
    }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM