CharSequence[]
और String[]
के बीच क्या अंतर है?CharSequence [] और एक स्ट्रिंग [] के बीच क्या अंतर है?
उत्तर
एक CharSequence एक इंटरफ़ेस है। स्ट्रिंग वर्णों का एक अपरिवर्तनीय अनुक्रम है और CharSequence इंटरफ़ेस लागू करता है। CharSequence [] और स्ट्रिंग [] क्रमशः CharSequence और स्ट्रिंग के सरणी हैं।
इसका मतलब है कि जहां भी आप CharSequence देखते हैं, आप स्ट्रिंग ऑब्जेक्ट पास कर सकते हैं।
StringCharSequence इंटरफ़ेस लागू करता है। CharSequence स्ट्रिंग द्वारा कार्यान्वित किया जाता है, लेकिन CharBuffer, सेगमेंट, स्ट्रिंगबफर, स्ट्रिंगबिल्डर।
तो एक स्ट्रिंग [] और एक charSequence [] अनिवार्य रूप से वही है। लेकिन CharSequence abstraction है, और स्ट्रिंग कार्यान्वयन है।
वैसे, '[]' ऑब्जेक्ट्स सर ऑब्जेक्ट्स को दर्शाता है। तो String[]
तारों की एक सरणी है। और स्ट्रिंग खुद पात्रों की एक सरणी है।
जावा स्ट्रिंग में वर्णों की एक सरणी नहीं है। पात्रों को एक सरणी में संग्रहीत किया जाता है, लेकिन स्ट्रिंग को अपरिवर्तनीय सुनिश्चित करने के लिए आपको कभी भी पहुंच नहीं मिलती है। –
CharSequence वर्णों के क्रमबद्ध सेट का प्रतिनिधित्व करता है, और इस चरित्र सेट की जांच के लिए विधियों को परिभाषित करता है। यह ineterface है, और इस इंटरफ़ेस का एक कार्यान्वयन स्ट्रिंग वर्ग है।
कृपया आगे की जानकारी के लिए जावा एपीआई दस्तावेज देखें। इसके अलावा, इस ट्यूटोरियल आप मदद कर सकते हैं: http://download.oracle.com/javase/tutorial/
"वर्णों का क्रमबद्ध सेट" का अर्थ यह होगा कि वही चरित्र दो बार नहीं हो सकता है। –
मुझे लगता है कि उनकी टिप्पणी केस-संवेदी होने के लिए है। उसने 'सेट' नहीं कहा, क्या उसने किया? अच्छी व्याख्या के लिए –
CharSequence
वर्णों के क्रम के लिए एक इंटरफेस है, यह सभी वर्गों को लागू करने के लिए आम संचालन के साथ प्रतिनिधित्व करता है। हालांकि, विशेष रूप से, CharSequence
इस बारे में कोई गारंटी नहीं देता है कि अनुक्रम उत्परिवर्तनीय है या नहीं। तो, आपके पास String
या StringBuilder
और StringBuffer
जैसे एक अपरिवर्तनीय कार्यान्वयन वर्ग हो सकता है।
इसके अलावा, CharSequence
equals()
या hashCode()
तरीकों में से सामान्य प्रयोजन कार्यान्वयन को परिष्कृत नहीं है, इसलिए कोई गारंटी नहीं कि CharSequence
को लागू विभिन्न वर्गों की वस्तुओं भले ही अंतर्निहित अनुक्रम है कि वे पकड़ में ही है बराबर होना तुलना करेंगे होती है । तो, दिया: इन तीनों के बीच
String seq1 = "hello";
StringBuilder seq2 = new StringBuilder("hello");
StringBuffer seq3 = new StringBuffer("hello");
तुलना .equals()
जावा 1.6 पर वापसी false
का उपयोग कर, लेकिन मैं किसी भी गारंटी नहीं मिल सकता है कि यह भविष्य में परिवर्तन नहीं होगा (हालांकि यह शायद काफी संभावना नहीं है)।
और CharSequence[]
और String[]
उनके संबंधित प्रकारों के केवल सरणी हैं।
संपादित: इस के व्यावहारिक नतीजा यह है, आप उनके toString()
विधि का उपयोग करें और परिणामी String
रों तुलना करने के लिए है के बाद से इस true
वापस जाने के लिए अगर अंतर्निहित दृश्यों ही कर रहे हैं गारंटी है समानता के लिए CharSequence
रों तुलना करने के लिए है।
+1 – confucius
CharSequence एक इंटरफ़ेस है। स्ट्रिंग एक कक्षा है जो CharSequence इंटरफ़ेस लागू करती है। इसका मतलब है कि एक स्ट्रिंग ऑब्जेक्ट CharSequence ऑब्जेक्ट के रूप में गुजरता है। CharSequence इंटरफेस को लागू करने वाले विभिन्न वर्ग हैं। वे सभी विधियों को परिभाषित करते हैं जो विधि हस्ताक्षर (या अमूर्त तरीकों से संबंधित हैं?) कि इंटरफेस CharSequence प्रदान करता है।
यहाँ दिखा कैसे String
कई concrete classes के एक एक CharSequence
interface को लागू है मेरी आरेख है।
विशेष रूप से, StringBuilder
आमतौर पर एक तेजी से विकल्प के रूप में +
ऑपरेटर, जहां धागे की सुरक्षा की जरूरत नहीं है के साथ String
वस्तुओं संयोजन किया जाता है।
वर्ग कोष्ठक एक सरणी का मतलब है। तो, String[]
String
ऑब्जेक्ट्स की एक सरणी है, और CharSequence[]
ऑब्जेक्ट्स की एक सरणी है जो String
ऑब्जेक्ट्स हो सकती है या नहीं हो सकती है लेकिन निश्चित रूप से CharSequence
इंटरफ़ेस को लागू करने वाली वस्तुएं हैं।
अधिक चर्चा के लिए my Answer here और my Answer here देखें।
- 1. [] स्ट्रिंग और ... गोलांग में स्ट्रिंग के बीच क्या अंतर है?
- 2. Double.parseDouble (स्ट्रिंग) और Double.valueOf (स्ट्रिंग) के बीच क्या अंतर है?
- 3. स्ट्रिंग :: एट और स्ट्रिंग :: ऑपरेटर [] के बीच क्या अंतर है?
- 4. @ स्ट्रिंग और @ + स्ट्रिंग के बीच अंतर?
- 5. स्ट्रिंग [] ए और स्ट्रिंग के बीच अंतर ...
- 6. रुबी में स्ट्रिंग और प्रतीक के बीच क्या अंतर है?
- 7. के बीच अंतर क्या है बातिल और String.valueOf (स्ट्रिंग वस्तु)
- 8. (स्ट्रिंग [] args) और System.Environment.CommandLine के बीच क्या अंतर है?
- 9. स्ट्रिंग और स्ट्रिंगबिल्डर के बीच क्या अंतर है?
- 10. स्ट्रिंग के बीच अंतर। छोटे और TextInfo.ToLower
- 11. एक भविष्यवाणी और एक कार्यकर्ता के बीच क्या अंतर है?
- 12. "$^एन" और "$ +" के बीच क्या अंतर है?
- 13. # {} $ {} और% {} के बीच क्या अंतर है?
- 14. के बीच क्या अंतर है:। और: आर !?
- 15. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 16. $ और $$ के बीच क्या अंतर है?
- 17. भिन्नता और '-' के बीच क्या अंतर है?
- 18. "। +" और "। +?" के बीच अंतर
- 19. Convert.ToDecimal (स्ट्रिंग) और दशमलव के बीच अंतर। पर्स (स्ट्रिंग)
- 20. इंटरफेस और एक अमूर्त वर्ग के बीच क्या अंतर है?
- 21. आतंक और एक जोर के बीच क्या अंतर है?
- 22. एक स्ट्रीमराइटर और बाइनरी लेखक के बीच क्या अंतर है?
- 23. एक इंटेंट सेवा और सेवा के बीच क्या अंतर है?
- 24. एक सरणी और वस्तु के बीच क्या अंतर है?
- 25. के बीच क्या अंतर है। और # एक सीएसएस फ़ाइल में?
- 26. एक आरईपीएल और दुभाषिया के बीच क्या अंतर है?
- 27. सार कक्षा और एक मिक्सिन के बीच क्या अंतर है?
- 28. एक मोनड और बंद होने के बीच क्या अंतर है?
- 29. स्ट्रिंग के रूप में स्ट्रिंग (मान) और मान के बीच क्या अंतर है?
- 30. के बीच क्या अंतर है?
आप जावा टैग जोड़ना चाहेंगे। या पर्याप्त प्रतिनिधि वाला कोई भी ऐसा कर सकता है। – codinguser
_ प्रभावशाली जावा द्वितीय संस्करण देखें, आइटम 52: ऑब्जेक्ट्स को उनके इंटरफेस_ द्वारा संदर्भित करें। 'स्ट्रिंग' एक 'वर्ग' है, 'CharSequence' एक' इंटरफ़ेस 'है (वह' स्ट्रिंग' और कुछ अन्य लागू होते हैं)। 'CharSequence []' अधिक लचीला है। उस ने कहा, _Item 25: arrays_ को सूचियों को पसंद करें। – polygenelubricants
[जावा में CharSequence वीएस स्ट्रिंग का संभावित डुप्लिकेट?] (Http://stackoverflow.com/questions/1049228/charsequence-vs-string-in-java) –