Saya sedang membangun Comparator yang menyediakan kemampuan mengurutkan multi-kolom pada String yang dibatasi. Saat ini saya menggunakan metode split dari kelas String sebagai pilihan pilihan saya untuk memisahkan String mentah menjadi token.
Apakah ini cara berkinerja terbaik untuk mengubah String mentah menjadi array String? Saya akan menyortir jutaan baris jadi saya pikir pendekatan itu penting.
Tampaknya berjalan dengan baik dan sangat mudah, tetapi tidak yakin apakah ada cara yang lebih cepat di java.
Berikut ini cara kerja sortir di Comparator saya:
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;
}
Setelah membandingkan berbagai pendekatan, percaya atau tidak, metode split adalah yang tercepat menggunakan versi terbaru java. Anda dapat mengunduh komparator lengkap saya di sini: https://sourceforge.net/projects/multicolumnrowcomparator/
StringUtils.split[PreserveAllTokens](text, delimiter)
.