ในบทความนี้ เราจะทำความเข้าใจวิธี ส่ง Lambda Expression เป็นอาร์กิวเมนต์ของเมธอด ใน Java 8+
Lambda Expression คือบล็อกโค้ดสั้นๆ ที่รับพารามิเตอร์และคืนค่า ใช้ร่วมกับ Functional Interface เช่น forEach, stream, map
ตัวอย่าง Input และ Output
Input:
("Apple", "Orange", "Grapes")
Output:
elppA, egnarO, separG
(แต่ละคำถูกกลับลำดับตัวอักษร)
อัลกอริธึม
ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - Import Package ที่จำเป็น (ArrayList, Arrays)
ขั้นตอนที่ 3 - ใน main สร้าง ArrayList ข้อมูล
ขั้นตอนที่ 4 - แสดงข้อมูลต้นฉบับ
ขั้นตอนที่ 5 - ใช้ forEach พร้อม Lambda (e) -> { ... } วนลูปแต่ละสมาชิก
ขั้นตอนที่ 6 - ใน Lambda: กลับลำดับตัวอักษรของแต่ละคำ แล้วพิมพ์
ขั้นตอนที่ 7 - แสดงผลลัพธ์
ตัวอย่างที่ 1: กลับลำดับคำใน ArrayList
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
ArrayList Fruits = new ArrayList<>(Arrays.asList("Apple", "Orange", "Grapes"));
System.out.println("The ArrayList is defined as : " + Fruits);
System.out.print("The Reversed ArrayList is: ");
Fruits.forEach((e) -> {
String result = "";
for (int i = e.length() - 1; i >= 0; i--)
result += e.charAt(i);
System.out.print(result + ", ");
});
}
}
Output
The ArrayList is defined as : [Apple, Orange, Grapes] The Reversed ArrayList is: elppA, egnarO, separG,
ตัวอย่างที่ 2: ใช้กับข้อมูลอื่น
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
ArrayList Games = new ArrayList<>(Arrays.asList("Football", "Cricket", "Baseball"));
System.out.println("The ArrayList is defined as : " + Games);
System.out.print("The Reversed ArrayList is: ");
Games.forEach((e) -> {
String result = "";
for (int i = e.length() - 1; i >= 0; i--)
result += e.charAt(i);
System.out.print(result + ", ");
});
}
}
Output
The ArrayList is defined as : [Football, Cricket, Baseball] The Reversed ArrayList is: llabtooF, tekcirC, llabesaB,