Tôi đang xây dựng Bộ so sánh cung cấp khả năng sắp xếp nhiều cột trên Chuỗi phân cách. Tôi hiện đang sử dụng phương thức phân tách từ lớp String làm lựa chọn ưa thích của tôi để tách Chuỗi thô thành mã thông báo.
Đây có phải là cách thực hiện tốt nhất để chuyển đổi Chuỗi thô thành mảng Chuỗi? Tôi sẽ sắp xếp hàng triệu hàng để tôi nghĩ cách tiếp cận là vấn đề.
Nó dường như chạy tốt và rất dễ dàng, nhưng không chắc chắn nếu có cách nhanh hơn trong java.
Đây là cách sắp xếp hoạt động trong Bộ so sánh của tôi:
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;
}
Sau khi đánh giá các cách tiếp cận khác nhau, tin hay không, phương pháp phân tách là cách nhanh nhất bằng cách sử dụng phiên bản java mới nhất. Bạn có thể tải xuống bộ so sánh đã hoàn thành của tôi tại đây: https://sourceforge.net/projects/multicolumnrowcomparator/
StringUtils.split[PreserveAllTokens](text, delimiter)
.