ฉันกำลังสร้างเครื่องมือเปรียบเทียบที่ให้ความสามารถในการจัดเรียงหลายคอลัมน์ในสตริงแบบมีตัวคั่น ขณะนี้ฉันกำลังใช้วิธีการแยกจากคลาส String เป็นตัวเลือกที่ฉันต้องการสำหรับการแยกสตริงดิบเป็นโทเค็น
นี่เป็นวิธีที่มีประสิทธิภาพดีที่สุดในการแปลงสตริงดิบเป็นอาร์เรย์สตริงหรือไม่ ฉันจะเรียงลำดับแถวนับล้านดังนั้นฉันคิดว่าวิธีการที่สำคัญ
ดูเหมือนว่าจะทำงานได้ดีและง่ายมาก แต่ไม่แน่ใจว่ามีวิธีที่เร็วกว่าใน java
นี่คือวิธีการเรียงลำดับใน Comparator ของฉัน:
public int compare(String a, String b) {
String[] aValues = a.split(_delimiter, _columnComparators.length);
String[] bValues = b.split(_delimiter, _columnComparators.length);
int result = 0;
for( int index : _sortColumnIndices ) {
result = _columnComparators[index].compare(aValues[index], bValues[index]);
if(result != 0){
break;
}
}
return result;
}
หลังจากทำการเปรียบเทียบวิธีการต่าง ๆ เชื่อหรือไม่วิธีการแยกเป็นวิธีที่เร็วที่สุดโดยใช้จาวารุ่นล่าสุด คุณสามารถดาวน์โหลดเครื่องมือเปรียบเทียบที่สมบูรณ์ได้ที่นี่: https://sourceforge.net/projects/multicolumnrowcomparator/
StringUtils.split[PreserveAllTokens](text, delimiter)
คอมมอนส์แลง