Tôi đã tìm ra điều này. Tôi đã sử dụng lớp Collator để phân loại phù hợp.
FYI nó trông như thế này (đây là sắp xếp của ArrayList):
public class AccessSorter
{
final static String letters = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R < s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z";
final static String digits = "< 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9";
final static String special = "< '.' < '_'";
private RuleBasedCollator accessCollator;
AccessSorter()
{
try
{
accessCollator = new RuleBasedCollator(special + digits + letters);
}
catch (ParseException e)
{
e.printStackTrace();
}
}
SomeComparator getSomeComparator()
{
return new SomeComparator();
}
class SomeComparator implements Comparator<String[]>
{
@Override
public int compare(String[] s1, String[] s2)
{
return accessCollator.compare(s1[1], s2[1]);
}
}
}
ví dụ về cách sử dụng:
Collections.sort(someCollectionOfStringArray, new AccessSorter().getSomeComparator()
Và bây giờ bạn không cần phải lo lắng về các đối chiếu của quyền truy cập hoặc mySQL. Bạn đặt ra các quy tắc bởi 12 người của bạn. Tất nhiên sẽ mất một khoảng thời gian để sắp xếp các mảng như vậy.
Hãy nhớ rằng, nếu bạn cần sắp xếp các mảng lớn nhiều lần, hãy cân nhắc sử dụng getCollatorKey () để tăng hiệu quả.
Ngoài ra, hãy nhớ nếu bạn cần thêm vào collator dấu chấm phẩy, dấu chấm, dấu ngoặc kép đặt chúng vào ''.
Tôi hy vọng nó sẽ giúp bạn phần nào. Trân trọng.