एक संग्रह एक ऐसी वस्तु है जहां डेवलपर्स विभिन्न प्रकार की संबंधित वस्तुओं को एक ही स्थान पर समूहित कर सकते हैं। कोटलिन पुस्तकालय में विभिन्न प्रकार के संग्रह मौजूद हैं जैसे सूची, सरणी, आदि।
इस लेख में, हम देखेंगे कि हम उस संग्रह के अंदर मौजूद विभिन्न गुणों द्वारा संग्रह को कैसे क्रमबद्ध कर सकते हैं। ऐसा करने के लिए, हम कोटलिन पुस्तकालय द्वारा प्रदान किए गए निम्नलिखित दो कार्यों की सहायता लेंगे।
-
सॉर्ट किया गया ()
-
तुलना करें ()
सॉर्ट किया गया ()
क्रमबद्ध के साथ () कोटलिन लाइब्रेरी द्वारा प्रदान किया गया एक फ़ंक्शन है जो एक निर्दिष्ट तुलनित्र द्वारा क्रमबद्ध सभी तत्वों की एक सूची देता है। आधिकारिक कोटलिन प्रलेखन के अनुसार, फ़ंक्शन की परिभाषा है,
फन <टी> ऐरे <आउट टी>। सॉर्टेडविथ (तुलनित्र:तुलनित्र <टी में>):सूची <टी>
क्रमबद्ध के साथ () एक तुलनित्र को एक तर्क के रूप में लेता है और प्रत्येक वस्तु के कस्टम गुणों की तुलना करता है और उसी को क्रमबद्ध करता है।
तुलना करें ()
तुलना करें () तुलनित्र बनाने के लिए जिम्मेदार है जिसे हम पास करेंगे सॉर्टेडविथ () वस्तु गुणों को क्रमबद्ध करने के लिए। कोटलिन प्रलेखन के अनुसार, फ़ंक्शन की परिभाषा इस प्रकार है:
मज़ातुलना द्वारा (vararg चयनकर्ता:(T) -> तुलनीय<*>?):तुलनित्र
उदाहरण
निम्नलिखित उदाहरण में, हम एक वर्ग बनाएंगे विद्यार्थी जिसमें विभिन्न प्रकार के मान होंगे जैसे कि छात्र का नाम, उनकी आयु और संबंधित GPA। हम इसे केवल "आयु" या "GPA" के आधार पर नहीं, बल्कि समग्र रूप से क्रमबद्ध करना चाहते हैं।
फन मेन (){ वैल स्टूडेंटए =स्टूडेंट ("स्टूडेंट ए", 18,7.0) वैल स्टूडेंट बी =स्टूडेंट ("स्टूडेंट बी", 18,6.9) वैल स्टूडेंटसी =स्टूडेंट ("स्टूडेंट सी", 20,7.3) वैल छात्रडी =छात्र ("छात्र डी", 22,8.3) वैल छात्रों की सूची =सूची (छात्र ए, छात्र बी, छात्र सी, छात्र डी); वैल सॉर्टेडलिस्ट =स्टूडेंट्सलिस्ट। सॉर्टेडविथ (तुलना करें ({it.age}, {it.GPA})) सॉर्टेड लिस्ट। प्रत्येक के लिए {println ("नाम:$ {it.name}, उम्र:$ {it.age}, GPA:$ {it.GPA}") }}कक्षा छात्र(वैल का नाम:स्ट्रिंग, वैल उम्र:इंट, वैल जीपीए:डबल)
आउटपुट
एक बार जब आप कोड निष्पादित करते हैं, तो यह निम्न आउटपुट उत्पन्न करेगा -
<पूर्व>नाम:छात्र बी, आयु:18, जीपीए:6.9नाम:छात्र ए, आयु:18, जीपीए:7.0नाम:छात्र सी, आयु:20, जीपीए:7.3नाम:छात्र डी, आयु:22, जीपीए:8.3