เกร็ดเล็กเกร็ดน้อยใน Java | AWT headless, การเรียงลำดับใน Map และการปัดทศนิยม

เนื่องจากเรื่องที่จะเขียนนั้นสั้นมาก ได้มาจากการค้นหาข้อมูลเพื่อแก้ปัญหาในงานที่ทำ จึงขอรวมไว้ในโพสต์เดียวเลย

  1. โปรแกรมบนเครื่องที่ไม่มีจอภาพ ซึ่งศัพท์เฉพาะทางจะเรียกว่าเฮดเล็สเซิร์ฟเวอร์ (headless server) เช่น เครื่องเซิร์ฟเวอร์แบบเบลด (Blade server) การรันจะต้องระบุจาวาพร็อพเพอร์ตี้ -Djava.awt.headless=true ด้วย เพราะถ้าไม่ใส่ จะทำให้เกิดข้อผิดพลาด NoClassDefFoundError ได้ งงอยู่นาน คิดว่าคลาสพาธ (classpath) มีปัญหา
  2. ลำดับการเก็บข้อมูลในแม็พ (Map) อาจจะไม่ได้เรียงตามลำดับการใส่ข้อมูลเสมอไป ถ้าต้องการเรียงลำดับข้อมูล มี 2 ทางเลือกคือ ใช้ LinkedHashMap เพื่อเรียงลำดับตามการใส่ข้อมูลก่อนหลัง และ TreeMap ซึ่งจะเรียงลำดับตามค่าคีย์แบบน้อยไปหามาก ก่อนหน้านี้เข้าใจผิดคิดว่า HashMap ธรรมดาจะเรียงตามลำดับการใส่ข้อมูล
  3. คลาสแม็ธ (Math) สามารถปัดทศนิยมเป็นจำนวนเต็มได้ แต่ถ้าต้องการปัดให้ยังเหลือทศนิยมอยู่ ใช้วิธีการทางคณิตศาสตร์มาเสริมได้ เช่น ถ้าต้องการปัดให้เหลือทศนิยม 2 ตำแหน่ง ให้เขียนคำสั่ง (double) Math.round(value * 100) / 100 วิธีนี้ทำงานได้เร็วกว่าการใช้คลาสอื่นๆมาช่วย เช่น DecimalFormat เป็นเทคนิคที่ใช้งานได้ผลและทำงานในระดับคณิตศาสตร์ล้วนๆ

ที่มา:

สแลช (SLASH)