2016-11-30 2 views
9

जावा 8 के रूप में पसंद किया गया है, हमारे प्यारे HashMap थोड़ा अलग व्यवहार करते हैं। यदि कुंजी तुलनात्मक इंटरफ़ेस लागू करती है, तो प्रत्येक हैश में एक लिंक किए गए सूची के बजाय संतुलित पेड़ होगा।क्या कोई परिदृश्य है जहां Java7 के हैशमैप कार्यान्वयन को जावा 8 के कार्यान्वयन

यह O(log(n)) को O(n) से टकराव के मामले में सबसे खराब समय जटिलता को कम, देख JEP180

वहाँ एक स्थिति है जिसमें Java7 से Java8 के उन्नयन में एक परिणाम के रूप HashMap के प्रदर्शन का एक गिरावट का कारण होता है?

+4

के लिए लाभ मुझे लगता है कि अगर आप 'compareTo' का एक बहुत धीमी गति से कार्यान्वयन प्रदर्शन खराब होता है। ;) – marstran

उत्तर

2

जावा 8 बाल्टी में प्रविष्टियों की संख्या में संतुलित पेड़ का उपयोग करेगा> एन, जहां एन को empirically चुना गया है, और यदि संख्या < के है तो एक बार फिर सूची का उपयोग करें। यदि बाल्टी में प्रविष्टियों की संख्या है तो मैं खराब प्रदर्शन की अपेक्षा करूंगा इस तरीके से परिवर्तन होता है कि "वृक्षारोपण/अनियंत्रित" अक्सर होता है। यह विशिष्ट हैश फ़ंक्शन के कारण हो सकता है।

इसके अलावा, मैं यकीन नहीं करता है, तो बनाने और पेड़ की क्वेरी के लिए भूमि के ऊपर के लायक छोटे एन

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