จาก post การพูดคุยเรื่องทำการกรองและเรียงลำดับข้อมูลใน List กันอย่างไร ?
ใน Facebook group ของ Thailand Android Developer
ซึ่งมีความน่าสนใจมาก ๆ
จึงมาลองฝึกเขียนตามคำแนะนำใน comment กันหน่อย
โดยจะเป็นภาษา Java และ Kotlin ซึ่งมีวิธีการแก้ไขดังนี้

  1. เขียนด้วยภาษา Java ทั่วไป
  2. เขียนด้วย Java 8 Lambda
  3. เขียนด้วยการนำ Google Guava มาช่วย
  4. เขียนด้วยการนำ RxJava มาช่วย
  5. เขียนด้วยภาษา Kotlin

มาเขียน code กัน ที่สำคัญมี test นะเออ

วิธีการที่ 1 เขียนด้วย Java ปกติ

ในการกรองข้อมูลก็วน loop กันไป
ในการเรียงข้อมูลก็สร้าง class ที่ implement interface Comparator ไปตามระเบียบ

วิธีการที่ 2 เขียนด้วย Java 8 Lambda

เอา code มาจากใน comment ของ post ข้างต้นนั่นแหละ
เป็นการใช้ Stream API นั่นเอง

วิธีการที่ 3 ใช้ Google Guava

ก็นำเอาความสามารถของ Java8 Lamba มาใช้ด้วย

วิธีการที่ 4 ใช้ RxJava

อาจจะดูแปลกตาขึ้นมาอีก แต่ว่าได้รับความนิยมเยอะนะ

สามารถเขียน test เพื่อทดสอบได้ดังนี้

ได้ผลการทดสอบผ่าน JUnit ดังนี้

<testcase classname="kata.SimpleTest" name="withSimpleSolution" time="0.014"/>
<testcase classname="kata.SimpleTest" name="withGuavaSolution" time="0.049"/>
<testcase classname="kata.SimpleTest" name="withRxJavaSolution" time="0.038"/>
<testcase classname="kata.SimpleTest" name="withJava8Solution" time="0.01"/>

ตัวอย่าง source code อยู่ที่ Github::Up1::Java Filter and Sort

ปิดท้ายด้วยภาษา Kotlin กันหน่อย ทำไมมันสั้นจังนะ

จบแล้วก็ได้ฝึกเขียน code กันอีกเรื่องแล้ว
ซึ่งแน่นอนว่ายังมีวิธีการอื่น ๆ ที่ดีอีกมากมาย
ใครมีคำแนะนำดี ๆ บอกกันได้นะครับ