मैं एक तुलनित्र का निर्माण कर रहा हूं जो एक सीमांकित स्ट्रिंग पर बहु-स्तंभ प्रकार की क्षमता प्रदान करता है। मैं वर्तमान में स्ट्रिंग वर्ग से विभाजित विधि का उपयोग कर रहा हूं क्योंकि कच्चे स्ट्रिंग को टोकन में विभाजित करने के लिए मेरी पसंदीदा पसंद है।
कच्चे स्ट्रिंग को एक स्ट्रिंग सरणी में बदलने के लिए यह सबसे अच्छा प्रदर्शन तरीका है? मैं लाखों पंक्तियों की छँटाई करूँगा ताकि मुझे लगता है कि दृष्टिकोण मायने रखता है।
यह ठीक लगता है और बहुत आसान है, लेकिन अनिश्चित है अगर जावा में तेज़ तरीका है।
यहाँ है कि कैसे मेरे तुलनित्र में काम करता है:
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)
।