集合框架-增強for

ZHOU_VIP發表於2017-04-23

3:增強for迴圈(掌握)

(1)是for迴圈的一種

(2)格式:

    for(元素的資料型別 變數名 : 陣列或者Collection集合的物件) {

        使用該變數即可,該變數其實就是陣列或者集合中的元素。

    }

(3)好處:

    簡化了陣列和集合的遍歷

(4)弊端

    增強for迴圈的目標不能為null。建議在使用前,先判斷是否為null。


package cn.itcast_01;

import java.util.ArrayList;
import java.util.List;

/*
 * JDK5的新特性:自動拆裝箱,泛型,增強for,靜態匯入,可變引數,列舉
 * 
 * 增強for:是for迴圈的一種。
 * 
 * 格式:
 * 		for(元素資料型別 變數 : 陣列或者Collection集合) {
 *			使用變數即可,該變數就是元素
 *   	}
 *   
 * 好處:簡化了陣列和集合的遍歷。
 * 
 * 弊端: 增強for的目標不能為null。
 * 如何解決呢?對增強for的目標先進行不為null的判斷,然後再使用。
 */
public class ForDemo {
	public static void main(String[] args) {
		
		// 定義一個int陣列
		int[] arr = { 1, 2, 3, 4, 5 };
		for (int x = 0; x < arr.length; x++) {
			System.out.println(arr[x]);
		}
		System.out.println("---------------");
		
		// 增強for
		for (int x : arr) {
			System.out.println(x);
		}
		System.out.println("---------------");
		
		// 定義一個字串陣列
		String[] strArray = { "林青霞", "風清揚", "東方不敗", "劉意" };
		// 增強for
		for (String s : strArray) {
			System.out.println(s);
		}
		System.out.println("---------------");
		
		// 定義一個集合
		ArrayList<String> array = new ArrayList<String>();
		array.add("hello");
		array.add("world");
		array.add("java");
		// 增強for
		for (String s : array) {
			System.out.println(s);
		}
		System.out.println("---------------");

		List<String> list = null;
		// NullPointerException
		// 這個s是我們從list裡面獲取出來的,在獲取前,它肯定還好做一個判斷
		// 說白了,這就是迭代器的功能
		if (list != null) {
			for (String s : list) {
				System.out.println(s);
			}
		}

		// 增強for其實是用來替代迭代器的
		// ConcurrentModificationException
		// for (String s : array) {
		// 		if ("world".equals(s)) {
		// 		array.add("javaee");
		// 	 }
		// }
		// System.out.println("array:" + array);
	}
	
}


package cn.itcast_01;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * ArrayList儲存字串並遍歷。要求加入泛型,並用增強for遍歷。
 * A:迭代器
 * B:普通for
 * C:增強for
 */
public class ArrayListDemo {
	public static void main(String[] args) {
		
		// 建立集合物件
		ArrayList<String> array = new ArrayList<String>();

		// 建立並新增元素
		array.add("hello");
		array.add("world");
		array.add("java");

		// 遍歷集合
		// 迭代器
		Iterator<String> it = array.iterator();
		while (it.hasNext()) {
			String s = it.next();
			System.out.println(s);
		}
		System.out.println("------------------");

		// 普通for
		for (int x = 0; x < array.size(); x++) {
			String s = array.get(x);
			System.out.println(s);
		}
		System.out.println("------------------");

		// 增強for
		for (String s : array) {
			System.out.println(s);
		}
	}
}


package cn.itcast_01;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * 需求:ArrayList儲存自定義物件並遍歷。要求加入泛型,並用增強for遍歷。
 * A:迭代器
 * B:普通for
 * C:增強for
 * 
 * LinkedList,Vector,Colleciton,List等儲存我還講嗎?不講解了,但是要求你們練習。
 * 
 * 增強for是用來替迭代器。
 */
public class ArrayListDemo2 {
	public static void main(String[] args) {
		// 建立集合物件
		ArrayList<Student> array = new ArrayList<Student>();

		// 建立學生物件
		Student s1 = new Student("林青霞", 27);
		Student s2 = new Student("貂蟬", 22);
		Student s3 = new Student("楊玉環", 24);
		Student s4 = new Student("西施", 21);
		Student s5 = new Student("王昭君", 23);

		// 把學生物件新增到集合中
		array.add(s1);
		array.add(s2);
		array.add(s3);
		array.add(s4);
		array.add(s5);

		// 迭代器
		Iterator<Student> it = array.iterator();
		while (it.hasNext()) {
			Student s = it.next();
			System.out.println(s.getName() + "---" + s.getAge());
		}
		System.out.println("---------------");

		// 普通for
		for (int x = 0; x < array.size(); x++) {
			Student s = array.get(x);
			System.out.println(s.getName() + "---" + s.getAge());
		}
		System.out.println("---------------");

		// 增強for
		for (Student s : array) {
			System.out.println(s.getName() + "---" + s.getAge());
		}
	}
}


package cn.itcast_01;

public class Student {
	// 成員變數
	private String name;
	private int age;

	// 構造方法
	public Student() {
		super();
	}

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	// 成員方法
	// getXxx()/setXxx()
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}



相關文章