2011-10-06 7 views
15

मेरे पास arraylist<interface> ऑब्जेक्ट्स को इस सूची में लूप में जोड़ा गया है। जब भी विधि कहा जाता है, तो मैं इस सरणी सूची को रिक्त करना चाहता हूं।जावा: एक सरणी सूची को रीसेट कैसे करें ताकि यह खाली हो सके

सरणी मैं यहाँ खाली करने के लिए चाहते हैं suggestedPhrases है:

यहाँ कोड है।

public List<Interface> returnSuggestedList(String prefix) { 

    String tempPrefix = prefix; 


    // suggestedPhrases = null; 
    //suggestedPhrases = new ArrayList<Interface>(); 
    //Vector<String> list = new Vector<String>(); 

    //List<Interface> interfaceList = new ArrayList<Interface>(); 
    Collections.sort(wordsList); 
    System.out.println("Sorted Vector contains : " + wordsList); 
    int i = 0; 

    //List<String> selected = new ArrayList<String>(); 
    for(String w:wordsList){ 
     System.out.println(w); 
     if(w.startsWith(prefix.toLowerCase())) { // or .contains(), depending on 
      //selected.add(w);  // what you want exactly 
     Item itemInt = new Item(w); 
     suggestedPhrases.add(itemInt); 
    } 
} 
+3

ArrayList के लिए एपीआई दस्तावेज़ पढ़ने के बारे में कैसे? http://download.oracle.com/javase/6/docs/api/java/util/ArrayList.html –

+3

-1 दोस्त, एपीआई को देखने के बारे में इतना मुश्किल क्या है? – mre

+0

^^ रास्ता बहुत अधिक जानकारी के लिए – EI756

उत्तर

34

सरणी अपने विधि के लिए कॉल भर बनी रहती है (उदाहरण के लिए अगर यह वर्ग के एक सदस्य है), आप suggestedPhrases.clear() यह स्पष्ट करने के लिए कह सकते हैं।

अपने उदाहरण से

वहाँ कॉल भर suggestedPhrases लागू करने के लिए किसी भी आवश्यकता होने के लिए प्रकट नहीं होता है, तो आप बस एक नई सरणी सूची हर बार अपने विधि कहा जाता है बनाने (और वापसी) कर सकते हैं:

public List<Interface> returnSuggestedList(String prefix) { 
    ArrayList<Interface> suggestedPhrases = new ArrayList<Interface>(); 
    // populate suggestedPhrases here 
    return suggestedPhrases; 
} 
+1

मैंने ऐसा किया और मुझे जुनीट टेस्ट – EI756

+0

में एक शून्य सूचक अपवाद मिलता है अपवाद के संदेश को पढ़ने के बारे में, जो इंगित करता है कि आपकी कक्षा की कौन सी रेखा अपवाद होता है? –

+2

और फिर विधि का नाम वास्तव में यह दर्शाता है कि फ़ंक्शन क्या करता है! – cwallenpoole

6

आप clear विधि को कॉल कर सकते हैं, लेकिन आम तौर पर मैं मौजूदा एक का उपयोग करने के बजाय एक नया उदाहरण बनाना पसंद करता हूं। ओवरहेड नगण्य है (को वास्तव में प्रदर्शन-महत्वपूर्ण खंडों को छोड़कर) क्योंकि आज के जेवीएम ऑब्जेक्ट री-आवंटन को अच्छी तरह से संभाल सकते हैं।

+0

स्पष्ट कॉलिंग पर एक नया उदाहरण बनाने का कोई फायदा? –

+0

यहां देखें: http://stackoverflow.com/a/18371813/821202 – michael667

+0

बहुत बढ़िया! धन्यवाद। –

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

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