मुझे स्ट्रिंग्स की लंबाई से एक लिंक्डलिस्ट की स्ट्रिंग्स को सॉर्ट करने की आवश्यकता है, लेकिन समान लंबाई वाले तारों का क्रम रखना चाहते हैं (लेक्सिकोग्राफिक रूप से क्रमबद्ध नहीं)।LinkedList <String> को कैसे सॉर्ट करें?
का नमूना इनपुट:
this
is
just
a
test
का नमूना आउटपुट:
a
is
this
just
test
मैं एक Comparable<LinkedList<String>>
और एक compareTo
विधि के साथ यह करने के लिए कोशिश कर रहा हूँ, लेकिन मैं सही उत्पादन नहीं मिलता है मेरा (अभी भी यह कोषगत सॉर्ट करता)
public class Q3_sorting implements Comparable<LinkedList<String>> {
Scanner keyboardScanner = null;
LinkedList<String> fileList = new LinkedList<String>();
// [...] कुछ कोड यहाँ
public int compareTo(LinkedList<String> o) {
// TODO Auto-generated method stub
o = fileList;
for (int i = 0; i < fileList.size() -1; i++) {
if (fileList.get(i).length() == o.get(i+1).length()) {
return 0;
}
if (fileList.get(i).length() > o.get(i+1).length()) {
return -1;
}
if (fileList.get(i).length() < o.get(i+1).length()) {
return 1;
}
}
मैं तो मेरे मुख्य विधि में
Q3_sorting sort = new Q3_sorting(args);
Collections.sort(sort.fileList);
का उपयोग करें। मैं तो सूची का प्रिंट आउट ...
लेकिन मैं आउटपुट के रूप में यह मिलता है:
a
is
just
test
this
मैं इस समस्या को कैसे सुधार होगा?
'Collections.sort' का कोई भी उचित कार्यान्वयन सॉर्ट करने से पहले डेटा को एक सरणी में कॉपी करेगा, और फिर वापस कॉपी करें। हालांकि, 'लिंक्डलिस्ट' आमतौर पर अक्षम है और आमतौर पर इससे बचा जाना चाहिए। –