Я строю компаратор, который обеспечивает возможность сортировки по нескольким столбцам в строке с разделителями. В настоящее время я использую метод split из класса String в качестве предпочтительного способа разделения необработанной строки на токены.
Это лучший способ преобразования необработанных строк в массив строк? Я буду сортировать миллионы строк, поэтому думаю, что подход имеет значение.
Кажется, что он работает нормально и очень просто, но не уверен, есть ли более быстрый путь в Java.
Вот как работает сортировка в моем компараторе:
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;
}
Поверьте или нет, после сравнения различных подходов, метод split был самым быстрым с использованием последней версии Java. Вы можете скачать мой заполненный компаратор здесь: https://sourceforge.net/projects/multicolumnrowcomparator/
StringUtils.split[PreserveAllTokens](text, delimiter)
.