मेरी समाधान की जांच करें, कुंजी के अनुसार क्रमबद्ध:
private static SparseIntArray sFactorsMap = new SparseIntArray();
private static void sortMap() {
SparseIntArray sortedSparseIntArray = new SparseIntArray();
while (sFactorsMap.size() > 0) {
int min = Integer.MAX_VALUE;
for (int i = 0; i < sFactorsMap.size(); i++) {
if (sFactorsMap.keyAt(i) <= min) {
min = sFactorsMap.keyAt(i);
}
}
sortedSparseIntArray.put(min, sFactorsMap.get(min));
sFactorsMap.removeAt(sFactorsMap.indexOfKey(min));
}
sFactorsMap = sortedSparseIntArray;
}
स्रोत
2017-11-16 13:42:19
आप इसे सुलझाने के लिए क्यों चाहिए? कुंजी बदलती नहीं हैं और 'स्पैरएरे' 'Iterable' लागू नहीं करती है। – nkr
'Iterable' इतना मुद्दा नहीं है, लेकिन मैं इस बात से सहमत हूं कि यदि लक्ष्य इस डेटा संरचना को हल करना है, तो सामान्य जावा डेटा संरचनाएं जैसे 'मानचित्र' के उप-वर्ग की तरह अधिक समझदारी होगी। यह नहीं कहना है कि आप 'स्पेयरएरे' को वांछित तरीके से सॉर्ट नहीं कर सकते हैं, लेकिन यह आउट ऑफ़ द बॉक्स समाधान का उपयोग करने से अधिक काम करता है। – Tom
@ टॉम: हाँ, उसे एक और डेटा संरचना का उपयोग करना चाहिए। यहां तक कि जब वह 'स्पैर्सएरे' को सॉर्ट करने का प्रबंधन करता है तब भी वह मूल्यों को सही क्रम में प्राप्त नहीं कर पाएगा। आपके संपादन के संबंध में – nkr