集合框架-增強for
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;
}
}
相關文章
- 集合------集合框架Collection/Iterator迭代器/增強for迴圈框架
- 中介軟體增強框架之-CaptureFramework框架框架APTFramework
- 中介軟體增強框架之InterceptFramework框架Framework
- 【集合框架】Java集合框架綜述框架Java
- 增強for為什麼不能刪除集合裡的元素
- 集合框架-TreeMap集合框架
- 集合框架-Set集合框架
- 集合框架-TreeSet集合框架
- 集合框架-Collection集合框架
- 集合框架-List集合框架
- WEB的QTP原型框架PAFAWEB(增強型SAFFRON)WebQT原型框架
- 集合框架框架
- 集合框架-集合總結框架
- 集合框架-List集合-2框架
- 集合框架-List集合-3框架
- 集合框架-Collection集合-2框架
- 集合框架-Collection集合-3框架
- 集合框架-Map集合功能概述框架
- 集合框架-HashMap集合的案例框架HashMap
- Java集合(1)一 集合框架Java框架
- 集合框架-Collection集合總結框架
- Java集合框架系列教程一:集合框架簡介Java框架
- Java 集合框架Java框架
- 集合框架-Collections框架
- java集合框架Java框架
- 集合框架-Map集合的遍歷框架
- MyBatis-Pro,新一代的MyBatis增強框架MyBatis框架
- 基於SPI的增強式外掛框架設計框架
- java9第5篇-Collection集合類的增強與優化Java優化
- 10.集合框架框架
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- 集合框架-集合的巢狀遍歷框架巢狀
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- 「譯」Java集合框架系列教程二:集合介面Java框架
- PostgreSQL10.0preview效能增強-OLAP提速框架,FasterExpressionEvaluationFramework(含JIT)SQLView框架ASTExpressFramework
- JAVA集合框架 - Map介面Java框架
- Java集合框架學習Java框架
- 集合框架2- ArrayList框架