द्वारा लौटाई गई सूची से निकालने का प्रयास करते समय मैं विधि को कॉल करके प्राप्त कुछ डेटा रखने के लिए List
का उपयोग कर रहा हूं। तो मैं myList.Remove(int i)
विधि का उपयोग कर तत्व को निकालने का प्रयास कर रहा हूं। लेकिन जब मैं ऐसा करने की कोशिश करता हूं तो मुझे UnsupportedOperationException
मिल रहा है। इसके लिए क्या कारण होगा? मुझे इस समस्या को कैसे हल करना चाहिए?UnsupportedOperationException Array.asList
उत्तर
Array.asList()
wraps सूची इंटरफ़ेस में एक सरणी का प्रयास करें। सूची अभी भी सरणी द्वारा समर्थित है। Arrays एक निश्चित आकार हैं - वे तत्व जोड़ने या हटाने का समर्थन नहीं करते हैं, इसलिए रैपर या तो नहीं कर सकता है।
डॉक्स के रूप में वे हो सकता है इस के रूप में स्पष्ट नहीं कर सकता है, लेकिन वे कहते हैं कि कर :
एक निश्चित-आकार सूची निर्दिष्ट सरणी द्वारा समर्थित देता है।
"निश्चित-आकार" बिट एक संकेत है कि आप जोड़ सकते हैं या तत्वों :)
नहीं निकाल सकते होना चाहिए हालांकि यह चारों ओर अन्य तरीकों (एक सरणी से एक नया ArrayList
बनाने के लिए अन्य तरीके हैं) अतिरिक्त पुस्तकालयों के बिना, मैं व्यक्तिगत रूप से Google Collections Library (या Guava, जारी होने पर) को पकड़ने की अनुशंसा करता हूं)। इसके बाद आप उपयोग कर सकते हैं:
List<Integer> list = Lists.newArrayList(array);
कारण मैं इस सुझाव दे रहा हूँ कि GCL एक आम तौर पर अच्छी बात है, और अच्छी तरह से उपयोग कर रहा लायक है।
टिप्पणियों में उल्लेख के अनुसार, यह एरे के कॉपी करता है; सूची मूल सरणी द्वारा समर्थित नहीं है, और किसी भी संग्रह में परिवर्तन दूसरे में नहीं देखा जाएगा।
जैसा कि आप asist से प्राप्त कार्यान्वयन को एक पूर्ण सूची इंटरफ़ेस लागू नहीं करते हैं। मैं सूची को ArrayList में बदल दूंगा और फिर उस पर संशोधन करूँगा।
देखें http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html#remove%28int%29
निकाल सकते हैं आप इस सूची से अधिक पुनरावृत्ति मतलब और करने के लिए सभी वस्तुओं डाल शुरुआत में एक ArrayList ?? –
नहीं, ऐरेलिस्टिस्ट कन्स्ट्रक्टर एक संग्रह के रूप में संग्रह लेता है, ताकि आप केवल नए ऐरेलिस्ट को कॉल कर सकें। –
यह java.util.ArrayList
नहीं है। Arrays.asList()
अपना खुद का List
कार्यान्वयन देता है और यह निष्कासन का समर्थन नहीं करता है। आप इसे से एक असली ArrayList
बना सकते हैं:
new java.util.ArrayList(Arrays.asList(someArray));
यह बहुत भ्रमित कैसे asList()
काम करता है, मैं मानता चाहिए है।
क्योंकि आपको केवल-पढ़ने वाली सूची मिलती है।
List newList = new ArrayList(myList);
यह केवल पढ़ने के लिए नहीं है - यह केवल निश्चित आकार है। Google Guava –
कृपया Arrays.asList() के लिए एपीआई डॉक्स पढ़ें:
एक निश्चित-आकार सूची निर्दिष्ट सरणी द्वारा समर्थित देता है। (लौटे सूची में किए गए परिवर्तन सरणी करने के लिए "के माध्यम से लिखना"।)
ध्यान दें कि Collections.remove (पूर्णांक) एक "वैकल्पिक आपरेशन 'के रूप में Javadocs में चिह्नित है, सभी संग्रह नहीं यह समर्थन करेंगे जिसका अर्थ है। "निश्चित आकार सूची" का अर्थ है कि आप सूची के आकार को नहीं बदल सकते हैं, जो हटाएगा() करेगा। तो यह समर्थित नहीं है।
यदि आप Arrays.asList() द्वारा जेनरेट की गई सूची को बदलना चाहते हैं, तो बस इसे कॉपी करें, उदा। new ArrayList(Arrays.asList(...))
।
उपयोग
सूची के बजाय ArrayList
सूची का आकार तत्व तय किया है, सूची अलावा आइटम है और न ही न आइटम
- 1. UnsupportedOperationException() जब ArrayList
- 2. हाइबरनेट को संभालना UnsupportedOperationException: एक पठनीय वस्तु
- 3. मैं एक सूची में तत्व जोड़ने में असमर्थ हूं? UnsupportedOperationException
- 4. निकालें() Arrays.asList() के द्वारा बनाई गई सूची पर फेंकता UnsupportedOperationException
- 5. एंड्रॉयड UnsupportedOperationException: करने के लिए रंग कनवर्ट नहीं कर सकता: type = 0x2
- 6. कस्टम JTable सेल संपादक और सेल रेंडरर
- 7. स्कैला
- 8. सिग्नल कैसे करें "अभी तक लागू नहीं किया गया"?
- 9. एप्लिकेशन स्टार्टअप
- 10. जावा जेनरिक, ई से ई
- 11. java.util.List से तत्व को कैसे निकालें?
- 12. एंड्रॉइड
- 13. मैं जावा में अपवाद पर संदेश कैसे सेट कर सकता हूं?
- 14. Arrays.asList() संदेह?
- 15. त्रुटि: java.lang.UnsupportedOperationException: ऐप इंजन के ब्लॉबस्टोर और छवि API
- 16. एक अप्रचलित मानचित्र
- 17. सिंगलटनलिस्ट का उपयोग क्या है?
- 18. हाइबरनेट कस्टम उपयोगकर्ता टाइप
- 19. जावा कन्वर्ट ऑब्जेक्ट [] वेक्टर
- 20. एक परिवर्तनीय स्कैला संग्रह
- 21. JSR223 राइनो
- 22. एक गणना को Iterator
- 23. कैसे जांचें कि वर्तमान विधि के पैरामीटर में एनोटेशन है और जावा में पैरामीटर मान पुनर्प्राप्त करें या नहीं?
- 24. क्लोजर में गिनती कार्य की समय जटिलता क्या है?
- 25. मानचित्र से रिकॉर्ड उदाहरण को अलग करना
- 26. सर्कुलर संदर्भों के साथ पार्ससेलबल का उपयोग
- 27. जेएक्सबी
- 28. AssertionFailedError जब MockContext
- 29. vadin, sqlContainer
- 30. Xtend के लिए-लूप समर्थन और रेंज समर्थन
+1 सहमत है। हालांकि, मुझे लगता है कि यह ध्यान देने योग्य है कि मूल विधि मूल सरणी द्वारा समर्थित एक सूची लौटाती है, और मूल सरणी में "लिखने के माध्यम से" बदलती है। इसका उपयोग मूल सूची द्वारा समर्थित एक सूची नहीं लौटाएगा, और इस लौटाई गई सूची में किए गए किसी भी बदलाव से मूल सरणी प्रभावित नहीं होगी। – Snekse
के लिए – desau
@ डीसौ: मैंने इसे इंगित करने के लिए संपादित किया है। –