scala - filter collection based on value of field -
मेरे पास यह संग्रह है
वर्ग ConvEntry (पदनाम: स्ट्रिंग, साईटिक: डबल, सामान्य ("16 गेज", 0.05 9 8, सत्य), नया कॉन्वेंट्री ("1 / 16th इंच", 0.0625, सत्य), नया कॉन्वेंट्री ("15 गेज", 0.0673, गलत) , नए कॉन्वेन्ट्री ("14 गेज", 0.0747, झूठे), नया कॉन्वेंट्री ("13 गेज", 0.08 9 7, झूठे), नया कॉन्वेंट्री ("12 गेज", 0.1046, सत्य), नया कॉन्वेंट्री ("11 गेज", 0.1196, झूठे), नए कॉन्वेंट्री ("1/8 वीं इंच", 0.1250, सत्य), नया कॉन्वेंट्री ("10 गेज", 0.1345, झूठे), नया कॉन्वेंट्री ("0.160 इंच", 0.1600, झूठे), नया कॉन्वेन्ट्री ("8 गेज नया "ConvEntry" ("3 / 16th इंच", 0.1875, सच है), नई ConvEntry ("0.190 इंच", 0.1900, गलत), नए ConvEntry ("0.204 इंच", 0.2040, गलत), नया Convrentry ("1/4 इंच", 0.2500, सत्य), नया कॉन्वेंट्री ("5/16 वीं इंच", 0.3125, सत्य), नया कॉन्वेन्ट्री ("3/8 इंच ", 0.3750, सच है), नई कॉन्वेंट्री (" 7/16 वीं इंच ", 0.4375, सत्य), नया कॉन्वेंट्री (" 1/2 इंच ", 0.5000, सत्य), नया कॉन्वेंट्री (" 9/16 वीं इंच ", 0.5625, नया "Conventry" ("5 / 8th इंच", 0.6250, सच), नए Convrentry ("11 / 16th इंच", 0.6875, सच), नया Convention ("3 / 4th इंच", 0.7500, सच), नई Convrentry ("13/16 वीं इंच", 0.8125, सत्य), नया कॉन्वेंट्री ("7/8 इंच", 0.8750, सत्य), नया कॉन्वेंट्री ("1 इंच", 1.0000, सच), नया कॉन्वेंट्री ("1 1/4 इंच ", 1.2500, सत्य), नया कॉन्वेंट्री (" 1 1/2 इंच ", 1.5000, सत्य), नया कॉन्वेंट्री (" 1 3/4 इंच ", 1.7500, सत्य), नया कॉन्वेंट्री (" 2 इंच ", 2.0000, सत्य ), नया कॉन्वेन्ट्री ("2 1/2 इंच", 2.5000, सत्य))
फ़ील्ड में विभिन्न मानों के आधार पर संग्रह को फ़िल्टर करना किस तरह से करना है I मुझे सही मूल्यों की सूची के आधार पर एक एल्गोरिथ्म की आवश्यकता है, झूठी मूल्यों की एक सूची है, और एआई को किसी दिए गए नंबर के ऊपर और नीचे प्रविष्टि को खोजने की आवश्यकता है।
क्या यह संग्रह के साथ संभव है या क्या मुझे इसकी आवश्यकता है पुराने जमाने की ब्रूट बल लूप विधि करो।
सही या गलत मानों के संग्रह के लिए:
संग्रह [ConvEntry]
पर एक फिल्टर फ़ंक्शन है, जो ConvEntry
से Boolean
से फ़ंक्शन लेता है, फ़िल्टर फ़ंक्शन के आउटपुट एक संग्रह [ConvEntry]
उन वस्तुओं वाले होंगे जिनके लिए आपका फ़ंक्शन सच हो।
उदाहरण के लिए, सच प्रविष्टियों के लिए:
val FilteredList = convList.filter (_। सामान्य)
और झूठी प्रविष्टियाँ:
val filteredList = convList.filterNot (_। आम)
किसी आइटम के पहले और बाद के तत्व के लिए, आप indexWhere
का उपयोग उस फ़ंक्शन के साथ कर सकते हैं जो मान, वें एन का उपयोग करें सूचकांक - 1 और सूचकांक + 1 पिछले और अगले आइटम प्राप्त करने के लिए। यह मानते हुए है कि पिछले और अगले के अनुसार आप सूची के अनुसार पहले से ही सूची में हैं। बोरिस द्वारा सुझाए गए द्विआधारी खोज का उपयोग करते हुए टिप्पणी में स्पाइडर अधिक प्रदर्शनकारी होंगे।
ध्यान दें कि यदि आप सूचकांक द्वारा आइटम तक पहुंच रहे हैं तो वेक्टर
का उपयोग करना अधिक उपयुक्त हो सकता है। विभिन्न संग्रह प्रकारों के प्रदर्शन विशेषताओं के विवरण के लिए देखें।
Comments
Post a Comment