The easiest way to convert a Java Collection to a Scala equivalent is using JavaConversions, since Scala 2.8. से स्कैला समांतर संग्रह कैसे बनाएं। ये अंतर्निहित जावा संग्रह के लिए रिटर्न रैपर को रोकता है।जावा संग्रह
स्कैला 2.9 समांतर संग्रह प्रस्तुत किया गया, जहां संग्रह पर संचालन समानांतर में निष्पादित किया जा सकता है और परिणाम बाद में एकत्र किया जा सकता है। यह आसानी से लागू किया गया है, एक समानांतर एक में एक मौजूदा संग्रह परिवर्तित करने के रूप में सरल है:
myCollection.par
लेकिन वहाँ JavaConversions का उपयोग कर जावा संग्रह से परिवर्तित संग्रह पर 'बराबर' का उपयोग कर के साथ एक समस्या है। Parallel Collection Conversions में वर्णित है, स्वाभाविक अनुक्रमिक संग्रह एक नया समानांतर संग्रह में सभी मान का मूल्यांकन करने और उन्हें नए समानांतर संग्रह में शामिल करके 'मजबूर' कर रहे हैं:
ऐसी सूची, कतारों या नदियों के रूप मेंअन्य संग्रह,, कर रहे हैं स्वाभाविक रूप से इस अर्थ में अनुक्रमिक है कि तत्वों को के बाद एक का उपयोग किया जाना चाहिए। इन संग्रहों को समानांतर समानांतर में तत्वों की प्रतिलिपि बनाकर उनके समांतर रूपों में परिवर्तित कर दिया गया है। उदाहरण के लिए, एक कार्यात्मक सूची को मानक अपरिवर्तनीय समांतर अनुक्रम में परिवर्तित किया जाता है, जो समानांतर वेक्टर होता है।
यह मूल कारण है जब मूल जावा संग्रह का आलसी मूल्यांकन किया जाना है। उदाहरण के लिए, यदि केवल जावा इटेबल लौटाया जाता है, बाद में स्कैला इटेरेबल में परिवर्तित किया जाता है, तो इस बात की कोई गारंटी नहीं है कि इटेबल की सामग्री को उत्सुकता से एक्सेस किया जाना है या नहीं। तो प्रत्येक तत्व का मूल्यांकन करने की लागत को बनाए रखने के बिना जावा संग्रह से समानांतर संग्रह कैसे बनाया जाना चाहिए? यह लागत है कि मैं समानांतर में निष्पादित करने के लिए समांतर संग्रह का उपयोग करके बचने की कोशिश कर रहा हूं और आशा करता हूं कि प्रस्तावित पहले एन परिणाम 'ले लें'।
Parallel Collection Conversions के अनुसार संग्रह प्रकारों की एक श्रृंखला है जो स्थिर समय की लागत होती है, लेकिन यह गारंटी प्राप्त करने का एक तरीका प्रतीत नहीं होता है कि इन प्रकारों को JavaConversions (जैसे 'सेट' बनाया जा सकता है, लेकिन क्या यह 'हैशसेट' है?)।
ध्यान दें कि JavaConversions के बजाए JavaConverters का उपयोग करना बेहतर होगा, इसके साथ ही आप .asScala.toList.par जैसे कुछ करने में सक्षम होंगे। –