2010-09-02 13 views
12

शीर्षक की तरह, मैं गुवा संग्रहों का उपयोग करके थ्रेड-सुरक्षित हैशसेट प्राप्त करना चाहता हूं।गुवा संग्रह के साथ थ्रेड-सुरक्षित हैशसेट

क्या आप मेरी मदद कर सकते हैं?

धन्यवाद!

+0

क्या आप अपरिवर्तनीय सेट होंगे? – louisgab

+4

थ्रेडसेफ बनाने में कोई समझ नहीं होगी जब यह पहले से ही अपरिवर्तनीय है, है ना? – whiskeysierra

+0

आप कठोर विली हैं। यह अपरिवर्तनीय नहीं होगा। कई धागे इसे समवर्ती रूप से बदल देंगे। – santiagobasulto

उत्तर

6

यह गुवा से सेट क्लास का उपयोग करके सही जवाब होगा। वैसे भी @ क्रिस का जवाब अच्छा इरादा था।

Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>()); 
23
Set<K> set = Collections.newSetFromMap(new ConcurrentHashMap<K, Boolean>()); 
+0

धन्यवाद, मैं इसे आज़माउंगा। – santiagobasulto

+1

बीटीडब्ल्यू, आपके सभी बिंदु मेरे हैं क्योंकि मैंने इस प्रश्न का उत्तर अमरूद मेलिंग सूची पर दिया था, इसे यहां पोस्ट करने से 8 मिनट पहले;) – whiskeysierra

+0

@ विली: अगर मैं उन्हें आपको सौंप सकता हूं, तो मैं चाहता हूं, क्योंकि मैंने पहले से ही हिट किया है दिन के लिए मेरी प्रतिनिधि टोपी, इसलिए मुझे इस जवाब के लिए बिल्कुल कोई प्रतिनिधि नहीं मिल रहा है। :- पी –

4

गूगल संग्रह था एक कारखाने थोड़ी देर के लिए Sets.newConcurrentHashSet() नामित विधि।

public static <E> Set<E> newConcurrentHashSet() { 
    return newSetFromMap(new ConcurrentHashMap<E, Boolean>()); 
} 

वे एक newSetFromMap() com.google.common.collect.Sets वर्ग (की सहायता से डौग ली द्वारा लिखित अंदर विधि था:

इसके कार्यान्वयन क्रिस के सुझाव के समान था जेसीपी जेएसआर -166 के सदस्य)। उस विधि को जावा 1.6 में java.util.Collections में जोड़ा गया था।

इसे Google संग्रह 1.0rc1 में वापस ले लिया गया था, क्योंकि गुवा में समवर्ती सेटों का बेहतर समर्थन करने की योजना है (अधिक जानकारी here)।

This post समवर्ती सेट बनाने के लिए "newSetFromMap" विधि के उपयोग पर विस्तार करता है।

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