2014-11-24 6 views
26

में शून्य मान जोड़ना क्या मैं null मान ArrayList पर जोड़ सकता हूं भले ही उसके पास सामान्य प्रकार पैरामीटर हो?सरणीसूची

उदा।

ArrayList<Item> itemList = new ArrayList<Item>(); 
itemList.add(null); 

यदि हां, तो होगा

itemsList.size(); 

वापसी 1 या 0?

यदि मैं null मान ArrayList पर जोड़ सकता हूं, तो क्या मैं केवल ऐसे इंडेक्स के माध्यम से लूप कर सकता हूं जिनमें इस तरह की चीज़ें हों?

for(Item i : itemList) { 
    //code here 
} 

या प्रत्येक लूप के लिए भी सूची में शून्य मानों के माध्यम से लूप होगा?

+11

इन कोशिश करने के लिए आप कोड क्यों नहीं लिखते? एक वैध प्रश्न पोस्ट करने के लिए [पूछें] देखें –

+3

आप इसे क्यों नहीं चलाते और देखते हैं?, तो कोई समस्या तब यहां पोस्ट करें –

+8

हां, 1, नहीं, हाँ। – khelwood

उत्तर

25

हाँ, आप हमेशा null एक वस्तु के बजाय का उपयोग कर सकते हैं। बस सावधान रहें क्योंकि कुछ विधियां त्रुटि फेंक सकती हैं।

यह होगा 1.

भी null रों पाश के लिए में कारक किया जाएगा, लेकिन आप

for(Item i : itemList) { 
     if (i!= null) { 
       //code here 
     } 
} 
20

आप ArrayList को nulls जोड़ सकते हैं, और आप पाश में nulls के लिए जाँच करने के लिए होगा:

for(Item i : itemList) { 
    if (i != null) { 

    } 
} 

itemsList.size(); खाते में null ले जाएगा।

List<Integer> list = new ArrayList<Integer>(); 
list.add(null); 
list.add (5); 
System.out.println (list.size()); 
for (Integer value : list) { 
    if (value == null) 
     System.out.println ("null value"); 
    else 
     System.out.println (value); 
} 

आउटपुट:

2 
null value 
5 
+1

धन्यवाद, मैं अनुमान लगा रहा हूं कि .size() विधि भी शून्य मानों को ध्यान में रखती है। –

0

इस्तेमाल कर सकते हैं आप util वर्ग बना सकते हैं:

public final class CollectionHelpers { 
    public static <T> boolean addNullSafe(List<T> list, T element) { 
     if (CollectionUtils.isEmpty(list) || element == null) { 
      return false; 
     } 

     return list.add(element); 
    } 
} 

और फिर इसका उपयोग करें:

Element element = getElementFromSomeWhere(someParameter); 
List<Element> arrayList = new ArrayList<>(); 
CollectionHelpers.addNullSafe(list, element); 
संबंधित मुद्दे