2009-05-14 4 views
36

जैसा कि शीर्षक पूछता है, मुझे आश्चर्य है कि लिंक्डलिस्ट वर्ग में आकार() विधि एम (1) समय या ओ (एन) समय को अमूर्त करती है या नहीं।जावा में लिंक्डलिस्ट पर आकार() कॉल की समय जटिलता क्या है?

+0

नोट, समवर्ती संरचना कंप्यूटिंग आकार के लिए धीमा हो सकता है, और वैसे भी व्यर्थ है। –

उत्तर

54

यह (1)। आप स्रोत कोड के लिए गूगल कर सकते हैं और आप इस तरह आ जाएगा: संग्रह कक्षाएं मैं दुकान पर एक एक चर के रूप में आकार देखा है सब के सब से http://www.docjar.com/html/api/java/util/LinkedList.java.html

और सब कुछ के माध्यम से पुनरावृति नहीं है इसे पाने के लिए ।

+2

नेटबीन में ctrl-click को Google से भी तेज़ लगेगा;) – Superole

12

हे (1) के रूप में आप पाया है होता था आप स्रोत कोड को देखा ...

LinkedList से: हे

private transient int size = 0; 

...

/** 
* Returns the number of elements in this list. 
* 
* @return the number of elements in this list 
*/ 
public int size() { 
    return size; 
} 
+4

और यदि आप सूर्य के कार्यान्वयन का उपयोग नहीं कर रहे हैं? http://en.wikipedia.org/wiki/Java_Class_Library#Alternative_implementations मुझे लगता है कि उसका सवाल यह है कि क्या यह ओ (1) होने की गारंटी है, चाहे वह किसी विशिष्ट कार्यान्वयन/संस्करण में ओ (1) है या नहीं। – jalf

+1

कार्यान्वयन 1.2 के बाद से किया गया है जब लिंक्डलिस्ट स्थापित किया गया था, इसलिए यह हमेशा ओ (1) –

+5

होगा यह जावा 1.6 से है। यह वीएम पर निर्भर नहीं है लेकिन (सिद्धांत रूप में) मानक पुस्तकालय के पुराने संस्करणों में भिन्न हो सकता है। यदि आप 100% सुनिश्चित करना चाहते हैं, तो अपने संस्करण के स्रोत की जांच करें, लेकिन कोई भी सायन डेवलपर इस तरह की किसी चीज़ की मांग पर आकार की गणना नहीं करेगा, जहां सबकुछ स्मृति में है और संरचना के निर्माण के रूप में आप इसका मिलान कर सकते हैं। – Kris

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