มันคือตัวเลขที่เป็น String ซึ่งมีรูปแบบเป็น X.X.X.X (ตัวเลขจะเป็นกี่หลักก็ได้)
ผมขอเรียกว่าตัวเลขแบบนี้ว่า "multiple points number" ก็แล้วกันน่ะครับ
ซึ่งมันไม่สามารถแปลงไปเป็น Float หรือ Double ได้ (เพราะมันเป็น single point)
ปัญหา
ถ้าเราเขียน code การจัดเรียง String แบบธรรมดาๆ เราจะได้ผลลัพธ์การจัดเรียงที่ไม่ถูกต้อง ดังรูป
จะเห็นว่า 10. กับ 11. มาก่อน 2. เนื่องจาก มันจัดเรียงตามหลักพจนานุกรมครับ ไม่ได้เอาค่าของตัวเลขจริงๆ มาคิด
Collections.sort(children, new Comparator<TreeModel>() { @Override public int compare(TreeModel model1, TreeModel model2) { return model1.getId().compareTo(model2.getId()); /***/ } });