จาก post การพูดคุยเรื่องทำการกรองและเรียงลำดับข้อมูลใน List กันอย่างไร ?
ใน Facebook group ของ Thailand Android Developer
ซึ่งมีความน่าสนใจมาก ๆ
จึงมาลองฝึกเขียนตามคำแนะนำใน comment กันหน่อย
โดยจะเป็นภาษา Java และ Kotlin ซึ่งมีวิธีการแก้ไขดังนี้
- เขียนด้วยภาษา Java ทั่วไป
- เขียนด้วย Java 8 Lambda
- เขียนด้วยการนำ Google Guava มาช่วย
- เขียนด้วยการนำ RxJava มาช่วย
- เขียนด้วยภาษา 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 กันอีกเรื่องแล้ว
ซึ่งแน่นอนว่ายังมีวิธีการอื่น ๆ ที่ดีอีกมากมาย
ใครมีคำแนะนำดี ๆ บอกกันได้นะครับ