For Each Loop ในภาษา Java
บทความนี้เรามาดูวิธีการใช้ for-each กันครับ ซึ่ง for-each นั้นก็จะมีรูปแบบทั่ว ๆ ไป คือfor(type itr-var : iterableObj) statement-block
จากรูปแบบโค้ดจะเห็นว่าเราได้วนลูปใน iterableObj ซึ่ง iterableObj นั้นจะต้องเป็น array หรือว่าเป็น Object ที่ implements the new Iterable interface ด้วย
ถ้าเราลองไปดูใน Eclipse ก็จะมีคำอธิบายและรูปแบบโค้ดสำหรับ for-each ไว้ ตามรูปด้านล่าง
ตัวอย่างโค้ดที่ใช้ for-each
package info.doesystem.howto;
public class DoesystemInfo {
public static void main(String[] args) throws InterruptedException {
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int x : nums) {
System.out.print(x);
x = x * 10;
System.out.print("[" + x + "] ");
}
System.out.println();
for (int x : nums) {
System.out.print(x + " ");
}
}
}
จากโค้ดจะเห็นว่าเราใช้ for-each ในการวนแต่ละตัวใน array มาดูอีกตัวอย่างเราใช้ enum มาวนโดยเรียก values() ซึ่งค่าที่ออกมาก็คือ array
package info.doesystem.howto;
public class DoesystemInfo {
enum NamingOfTheDays {
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
}
public static void main(String[] args) throws InterruptedException {
for (NamingOfTheDays name : NamingOfTheDays.values()) {
System.out.println(name);
}
}
}
for-each ใน Arraylist
ต่อไปลองมาดูวิธีการ for-each ใน List กันดูบ้าง วิธีการก็ตามตัวอย่างด้านล่างเลยpackage info.doesystem.howto;
import java.util.ArrayList;
import java.util.List;
public class DoesystemInfo {
public static void main(String[] args) throws InterruptedException {
List nameOfDay = new ArrayList<>();
nameOfDay.add("Sunday");
nameOfDay.add("Monday");
nameOfDay.add("Tuesday");
nameOfDay.add("Wednesday");
nameOfDay.add("Thursday");
nameOfDay.add("Friday");
nameOfDay.add("Saturday");
for (String name : nameOfDay) {
System.out.println(name);
}
}
}
เมื่อเราลองเข้าไปดูใน ArrayList จะเห็นว่ามีการ implements List อยุ่ด้วย และใน List ก็จะ extends Collection ใน Collection ก็จะมีการ extends Iterable อยู่ด้วย ตามรูปด้านล่าง
ดังนั้น แสดงว่า Collection จะสามารถใช้ foreach ได้ทุก Collection เพราะได้ extends Iterable


ไม่มีความคิดเห็น:
แสดงความคิดเห็น