16/10/58

For Each Loop ในภาษา Java

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

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

แสดงความคิดเห็น