जावा ArrayList विशिष्ट सूचकांक में बदल देता है


212

कृपया मुझे इस जावा के साथ मदद चाहिए। मैंने बल्बों का एक ArrayList बनाया, और मैं एक बल्ब को दूसरे बल्ब के साथ विशिष्ट सूचकांक में बदलने की कोशिश कर रहा हूं। तो निम्नलिखित शीर्षक के साथ, मैं कैसे आगे बढ़ूं?

public void replaceBulb(int index, Bulbs theBulb) {

}

9
इसके लायक क्या है, मैं "बदलें", "पुट" या "इन्सर्ट" के लिए सूची इंटरफ़ेस देख रहा था। मैंने सेट की तलाश के बारे में नहीं सोचा था।
गुइसीम

2
@GuiSim सूची इंटरफ़ेस इतना लंबा नहीं है, आप इसे आसानी से 5 मिनट में एक बार में पूरा पढ़ सकते हैं ...

2
मैं ग्रहण के स्वत: पूर्ण का उपयोग कर रहा था, इंटरफ़ेस के माध्यम से नहीं देखा।
गुइसीम जूल

जवाबों:


367

सूची इंटरफ़ेसset(int index, E element) में विधि देखें


3
ur right.But u इसे संपादित करने के लिए सोच सकते हैं क्योंकि ur उत्तर सेट () विधि की तरह तथ्य की ओर ले जाता है जो एक स्थिर विधि है जो कि नहीं है, है?
एंड्रॉयड किलर

9
@AndroidKiller यह स्थिर है, ArrayList.set();लेकिन जब आप इसे अपनी सूची में कहते हैं, तो यह नहीं है:myArrayList.set(int, E);
व्हाइटफिन

इस विधि में समस्या यह है कि यह arrayOutOfBoundException को फेंकता है, अगर arrayList को इनिशियलाइज़ नहीं किया गया है। मैं इसके अलावा सही सूचकांक पर एक तत्व रखना चाहूंगा, निश्चित नहीं कि अगर ऐसा करने का कोई तरीका है।
Bionix1441

@ Bionix1441 भले ही सूची को आरंभ कर दिया गया हो, फिर भी एक सूचकांक के लिए एक मूल्य निर्धारित करने की कोशिश करना संभव है जो मौजूद नहीं है। इसलिए आपको यह सुनिश्चित करने की आवश्यकता है कि आपका सूचकांक वैध है।
TotoroTotoro

126

आप नीचे दिए गए अनुसार ArrayList के सेट विधि का उपयोग करके वस्तुओं को विशिष्ट स्थिति में बदल सकते हैं:

list.set( your_index, your_item );

लेकिन तत्व उस इंडेक्स पर मौजूद होना चाहिए जिसे आप सेट () विधि के अंदर से गुजर रहे हैं, अन्यथा वह अपवाद को फेंक देगा।


1
@vaxquis ok सर आप कृपया java 8 लिखिए और इसे जारी कीजिये। हम इसका उपयोग करने के लिए यहां हैं। ;)। SO में, उत्तर हमेशा प्रश्न के अनुसार होना चाहिए, इसलिए कृपया प्रश्न को पहले पढ़ें। और क्या समस्या है अगर यह पिछले मूल्य को वापस करता है, यदि आप उस मूल्य को चाहते हैं तो आप इसे छोड़ने के लिए अन्य उपयोग कर सकते हैं। यह पुराने मूल्य को बदल रहा है और यह है।
एंड्रॉयड किलर

1
@vaxquis ने पहले मेरी टिप्पणी पढ़ी स्पष्ट रूप से उल्लिखित उत्तर हमेशा प्रश्न के अनुसार होना चाहिए। जिस व्यक्ति ने प्रश्न पूछा, उसने उल्लेख किया है कि वह तत्व को प्रतिस्थापित करना चाहता है, इसलिए इसका अर्थ है कि उसमें तत्वों के साथ सरणी है। अब स्पष्ट है सर ???
एंड्रॉयड किलर

1
@vaxquis आप जिन चीजों पर विचार करते हैं, एक नौसिखिया यह जानता होगा, इसलिए इन मुद्दों का कोई मतलब नहीं है। फिर भी मैंने यू को खुश करने के लिए संपादन किया है :)
एंड्रॉइड किलर

2
नौसिखिया होने का मतलब है कि किसी को पता नहीं है कि किसी चीज़ को ठीक से कैसे कोड किया जाए। यह अमान्य कोड प्रदान करने के लिए हमेशा गलत है और इसका कोई बहाना नहीं है, क्योंकि यह और आमतौर पर शुरुआती लोगों के लिए भ्रम पैदा करेगा। एक सही और स्व-निहित कोड उदाहरण प्रदान करना StackOverflow के बारे में क्या है। आपके उत्तर में सुधार के लिए धन्यवाद।



7
public void setItem(List<Item> dataEntity, Item item) {
    int itemIndex = dataEntity.indexOf(item);
    if (itemIndex != -1) {
        dataEntity.set(itemIndex, item);
    }
}

1
यह केवल तभी काम करेगा जब नया आइटम पुराने आइटम के बराबर () विधि के संदर्भ में सही हो?
स्पाइकमैनुक

@spikemanuk, यह 'आइटम' में 'बराबर ()' पद्धति के कार्यान्वयन पर निर्भर करता है। यदि समानता केवल 'मद' की 'आईडी' पर निर्भर करती है तो इस कोड का उपयोग 'आइटम: {आईडी = 1, नाम = लंदन} को' आइटम: {आईडी = 1, नाम = पेरिस} द्वारा प्रतिस्थापित करने के लिए किया जा सकता है
अनिरुद्ध जगताप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.