Java JDK5的新特性之增强版for循环的应用

增强for: 是for循环的一种。

格式:
        for(元素数据类型 变量 : 数组或者Collection集合) {
           使用变量即可,该变量就是元素
      }
   
好处:简化了数组和集合的遍历。
 
弊端: 增强for的目标不能为null。如何解决呢?对增强for的目标先进行不为null的判断,然后在使用。

代码演示如下:

package cn.wen_01;

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

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);
			}
		}

	}
}

练习1

package cn.wen_02;

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);
		}
	}
}

练习2

测试类:

package cn.wen_03;

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

/*
 * 需求:ArrayList存储自定义对象并遍历。要求加入泛型,并用增强for遍历。
 * A:迭代器
 * B:普通for
 * C:增强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.wen_03;

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;
	}
}
发布了91 篇原创文章 · 获赞 16 · 访问量 1171

猜你喜欢

转载自blog.csdn.net/hewenqing1/article/details/103958276