2016-11-04 6 views

उत्तर

33

उपयोग distinct extension function:

val a = listOf("a", "b", "ab", "ba", "abc") 
val b = a.distinctBy { it.length } // ["a", "ab", "abc"] 

रूप @mfulton26 सुझाव दिया, आप भी toSet, toMutableSet उपयोग कर सकते हैं और, यदि:

val a = arrayOf("a", "a", "b", "c", "c") 
val b = a.distinct() // ["a", "b", "c"] 

वहाँ भी distinctBy function एक कैसे आइटम भेद करने के लिए निर्दिष्ट कर सकते हैं कि आपको संरक्षित होने के मूल आदेश की आवश्यकता नहीं है, toHashSet। ये फ़ंक्शन के बजाय Set उत्पन्न करते हैं और distinct से थोड़ा अधिक कुशल होना चाहिए।


आप उपयोगी मिल सकता है:

+1

के बारे में 'nulls को छान distinct' नहीं पता था। क्या आप एक उदाहरण दिखा सकते हैं? – Ilya

+0

@ इल्या, मेरा बुरा, यह 'विशिष्ट() 'नहीं था, लेकिन डीबगर जिसने अपने संग्रह दृश्य में' शून्य 'फ़िल्टर किया और इस प्रकार मुझे भ्रमित कर दिया। जवाब तय किया, धन्यवाद! – hotkey

+1

आप 'toSet' या' toMutableSet' का भी उपयोग कर सकते हैं, जिसमें 'विशिष्ट' से कम ओवरहेड है और यदि ऑर्डरिंग कोई फर्क नहीं पड़ता है तो आप 'toHashSet' का उपयोग कर सकते हैं। – mfulton26

संबंधित मुद्दे