2012-01-20 7 views
6

मुझे संग्रह और सेट इंटरफेस को क्रमबद्ध करना है। जावा पर उन इंटरफेस के लिए सबसे अच्छा सीरियलज़ेबल प्रतिस्थापन कौन सा है?"सेट" और "संग्रह" इंटरफेस के लिए सबसे अच्छा सीरियलज़ेबल प्रतिस्थापन क्या है?

+0

आप http://stackoverflow.com/questions/8314318/is-the-serialization-of-guava-immutable-collections-stable – Jayan

उत्तर

16

सेट इंटरफ़ेस है।
हैशसेट का उपयोग करें जो लागू करने और हैशसेट क्रमिक हैं।
बस सुनिश्चित करें कि सेट में सभी ऑब्जेक्ट्स क्रमबद्ध है।

अधिक जानकारी Why java.util.Set is not Serializable?

पी एस के लिए

। यह एक HashSet किसी भी ठोस वर्ग कि serializable और लागू करने है सेट, या संग्रह

+0

जैसे कुछ बात के लिए देख रहे खैर , मैं कहूंगा कि किसी भी पृष्ठभूमि की जानकारी के साथ यादृच्छिक रूप से अनुशंसा करने के बजाय, आपकी आवश्यकताओं के लिए जो भी कार्यान्वयन सबसे उपयुक्त है, उसका उपयोग करें। – dty

+0

मैं इसके साथ सहमत हूं, नपुंसक चीज एक ठोस वर्ग चुनना है, न कि इंटरफ़ेस। – Farmor

1

प्रकार की जाँच है कि सेट जानता serializable नहीं है का उपयोग होना जरूरी नहीं है, लेकिन सेट के एक उप-प्रकार serializable हो सकता है।

सेट एक इंटरफ़ेस है। लेकिन सेट का कार्यान्वयन हैशसेट है। यह serializable है।

आप सेट को क्रमबद्ध करने की अपेक्षा नहीं करेंगे क्योंकि एक सेट को तत्काल नहीं किया जा सकता है।

Set st = new Set(); // illegal 

तो सेट को वास्तव में Serializable को लागू करने की आवश्यकता नहीं है।

वैसे भी, आप LinkedHashSet और TreeSet का उपयोग कर सकते हैं। वे भी Serializable हैं।

0

कुछ आम लोगों:

--HashSet: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E> 

--TreeSet: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, 
    Set<E>, SortedSet<E> 

--ArrayList: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess 

--LinkedList: 

All Implemented Interfaces: 
    Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, Queue<E> 
संबंधित मुद्दे

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