Добавление нулевых значений в 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
}
Или будет ли каждый цикл циклически проходить через нулевые значения в списке?
Ответы
Ответ 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);