Avatar ·

Kotlin में एकाधिक फ़ील्ड द्वारा संग्रह को सॉर्ट करना

सभी को नमस्कार! मैंने अभी Kotlin सीखना शुरू किया है और एक ऐसे कार्य का सामना किया है जो सरल लगता है, लेकिन मुझे कोई सुरुचिपूर्ण समाधान नहीं मिल रहा है। मेरे पास `Person` क्लास के ऑब्जेक्ट्स की एक सूची है: ```kotlin data class Person( val name: String, val age: Int, val salary: Double ) ``` मुझे इस सूची को पहले आयु के अनुसार (आरोही क्रम में), फिर यदि आयु समान है तो नाम के अनुसार (वर्णमाला क्रम में), और अंत में यदि आयु और नाम दोनों समान हैं तो वेतन के अनुसार (अवरोही क्रम में) सॉर्ट करना है। Java में मैं comparators की श्रृंखला का उपयोग करता, लेकिन Kotlin में मैं देखता हूँ कि `sortedBy` फ़ंक्शन है, लेकिन यह केवल एक फ़ील्ड स्वीकार करता है। `sortedWith` और `compareBy` हैं, लेकिन मैं पूरी तरह से नहीं समझता कि उन्हें सही तरीके से कैसे संयोजित किया जाए। मैंने यह कोड आज़माया: ```kotlin val sortedList = list.sortedBy { it.age }.sortedBy { it.name }.sortedByDescending { it.salary } ``` लेकिन यह स्पष्ट रूप से काम नहीं करता, क्योंकि प्रत्येक बाद की सॉर्टिंग पिछली को ओवरराइट कर देती है। मल्टी-लेवल सॉर्टिंग को सही तरीके से कैसे लागू करें?