Tutorial for Application Development



Monday 27 April 2015

Java 8 หาค่า AVG ค่า MAX ค่า MIN แบบง่ายๆ ด้วย Aggregate

วันนี้จะเอาตัวอย่างการเขียน Code แบบง่ายๆ ของ Java 8  (jdk 1.8.x) มาให้ดูกัน
โดยจะยกตัวอย่างตัวทีเด็ดวันนีัคือ Aggregate  เอามาใช้ในการหาค่า AVG ค่า MAX ค่า MIN
จาก Object ที่อยู่ภายใน List

จะง่ายขนาดใหน แบบที่เรียกว่าไม่ต้องมี วน loop หรือ เช็ค If เลยซักแอะ

ตัวอย่าง Code ตามนี้เลย

double average = myList
    .stream()
    .filter(p -> p.getGender() == Person.Sex.MALE)
    .mapToInt(Person::getAge)
    .average()
    .getAsDouble();


เรียกได้ว่ากดจุดต่อๆ กันเข้าไปรอบเดียว
ได้ผลออกมาเลย
ตัวอย่างนี้คือการหาค่า AVG หรือ ค่าเฉลี่ยของ อายุ
มีใส่ Condition ว่าเอาเฉพาะ MAIL ด้วยอ่ะนะ
ลองเล่นกันดูครับ