2011-09-17 9 views
147

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

public void replaceBulb(int index, Bulbs theBulb) { 

} 
+7

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

+2

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

+1

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

उत्तर

257

चेक बाहर set() विधि List interface

+3

आप सही हैं। लेकिन आप इसे संपादित करने के बारे में सोच सकते हैं क्योंकि आपका उत्तर इस तथ्य की ओर जाता है जैसे सेट() विधि एक स्थिर विधि है जो नहीं है, है ना? –

+9

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

+0

इस विधि में समस्या यह है कि यह arrayOutOfBoundException को फेंक देता है अगर सरणी सूची शुरू नहीं हुई है। मैं इसके अतिरिक्त एक इंडेक्स को सही इंडेक्स पर रखना चाहता हूं, यह सुनिश्चित न करें कि ऐसा करने का कोई तरीका है या नहीं। – Bionix1441

20

उपयोग में set(int index, E element) विधि: see doc

arraylist.set(index,newvalue); 
106

आप के सेट पद्धति का उपयोग करके विशिष्ट स्थिति में आइटम की जगह ले सकता नीचे के रूप में ArrayList:

list.set(your_index, your_item); 

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

+1

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

+1

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

+1

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

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

यह केवल तभी काम करेगा जब नई वस्तु बराबर() विधि के संदर्भ में पुरानी वस्तु के बराबर होती है, है ना? – spikemanuk

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