Подтвердить что ты не робот

Добавление нулевых значений в arraylist

Могу ли я добавить значения null в ArrayList, даже если он имеет общий тип типа?

Eg.

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

Если да, то

itemsList.size();

return 1 или 0?

Если я могу добавить значения null в ArrayList, могу ли я пропустить только те индексы, которые содержат такие элементы?

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

Или будет ли каждый цикл циклически проходить через нулевые значения в списке?

4b9b3361

Ответ 1

Да, вы всегда можете использовать null вместо объекта. Просто будьте осторожны, потому что некоторые методы могут вызывать ошибку.

Это будет 1.

также null будет учитываться в цикле for, но вы можете использовать

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

Ответ 2

Вы можете добавить нули в ArrayList, и вам нужно будет проверить нули в цикле:

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

Ответ 3

Вы можете создать класс 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);