2010-09-28 2 views
6

मैं यहां एक खाली चित्रण कर रहा हूं; मुझे यह नहीं मिल रहा है, जब तक कि मैं वास्तव में अपनी नाक के नीचे कुछ नहीं देख रहा हूं।.NET do O (1) में कौन से डेटा संरचनाएं शामिल हैं() कॉल?

मैं डेटा संरचना में int एस की एक सूची स्टोर करने की कोशिश कर रहा हूं।
लेकिन जब मैं उन्हें जोड़ता हूं, तो मैं कोड कोड में बाद में जांच करूंगा कि int पहले से ही सूची में मौजूद है या नहीं।

जेनेरिक List<int> अपने Contains() के साथ एक ओ (एन) ऑपरेशन करता है।
मुझे ऐसा कुछ चाहिए जो Dictionary<> के Contains() जितना तेज़ काम करता है, जो ओ (1) ऑपरेशन करता है क्योंकि यह चाबियाँ रखता है।

मुझे पता है कि जवाब इतना आसान है और मैंने आज बहुत लंबे समय तक काम किया है, मुझे याद नहीं है।

सहायता!

उत्तर

9

HashSet<T> आपके लिए काम करेगा?

+0

का उपयोग नहीं किया जा सकता है यदि आपको वास्तव में एक सूची स्टोर करने की आवश्यकता है, हालांकि (ऑर्डर खो जाएगा)। – Thilo

+1

वाह इतना आसान ...... और यह मेरे सामने पूरे समय सही था। काश मैं इस सवाल का जवाब तेजी से कर सकता हूं =)। धन्यवाद! – BeemerGuy

+0

ओह मुझे आदेश, थिलो की परवाह नहीं है। यह वही है जो मैं चाहता हूं; केवल पूर्णांक का एक बैग जिसे मैं जल्दी से अनुक्रमित कर सकता हूं। – BeemerGuy

1

जब से मैं सी # क्योंकि मंच कमी के 2.0 के साथ काम करते हैं, मैं आमतौर पर Dictionary<int,bool> का उपयोग करें, बाधा है कि यदि एक कुंजी नक्शा में है, bool सच है (ताकि bool वास्तव में किसी भी जानकारी एन्कोडिंग नहीं है के साथ - यह है .NET से गायब इकाई प्रकार के लिए सिर्फ एक विकल्प)।

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