Как узнать, является ли указанный объект в ArrayList нулевым? - PullRequest
0 голосов
/ 04 июля 2011

Я хочу знать, является ли объект в ArrayList нулевым. Если это ноль, то это не должно ничего делать. Пример:

if(!(theList.get(theIndexofObject) == null)){
   do something...
}
else{
   do nothing...
}

Это не работает, потому что он вызывает исключительную ситуацию для метода .get (). Любые идеи, чтобы решить эту проблему?

Ответы [ 7 ]

4 голосов
/ 04 июля 2011

Используйте метод contains() из вашего списка:

boolean contains(Object o)
3 голосов
/ 04 июля 2011

Вы, вероятно, не понимаете, как использовать API.Вот простой пример того, как это работает:

import java.util.ArrayList;
import java.util.List;

public class NullItems {
    public static void main(String[] args) {

        List<Object> items = new ArrayList<Object>();
        items.add("foo");
        items.add(null);
        items.add(25);

        for (int i = 0; i < items.size(); i++) {
            Object item = items.get(i);
            if (item != null) {
                System.out.println(item);
            }
        }

        // or shorter:
        for (Object item : items) {
            if (item != null) {
                System.out.println(item);
            }
        }
    }
}
1 голос
/ 04 июля 2011

Вы используете get метод неправильно. Вам нужно передать индекс, по которому находится элемент, в метод get. Вы можете использовать метод contains, чтобы увидеть, находится ли объект в ArrayList.

Пример:

if(theList.contains(theObject))
   //do something

В противном случае вы можете использовать попытку и улов, который кажется запутанным и трудным для чтения, поэтому я бы настоятельно не рекомендовал делать следующее, но включил его, чтобы показать вам:

for(int i=0; i<theList.size(); i++)
{
    try
    {
       if(!(theList.get(i) == null))
       {
           //do something
       }
       else
       {
           //do nothing
       }
    }
    catch(NullPointerException npe)
    {
        //do something else
    }
}

В качестве альтернативы используйте цикл for-each.

0 голосов
/ 25 апреля 2014
if(!(theList.get(theIndexofObject) == null)){
   do something...
}
else{
   do nothing...
}

вместо написания этого кода. Попробуйте в следующем формате, я думаю, вы получите ответ

if(theList.get(theIndexofObject)!= null)){
   do something...
}
else{
   do nothing...
}
0 голосов
/ 23 мая 2013

Метод arrayList.size () возвращает количество элементов в списке - поэтому, если индекс больше или равен size (), он не существует.

0 голосов
/ 04 июля 2011

я думаю, что ваш arraylist имеет нулевое значение для первого условия:

if(theList!=null && !(theList.get(theIndexofObject) == null)){
    // do something...
}
else{
    // do nothing...
}
0 голосов
/ 04 июля 2011

В javaScript itemArray.length, для java вам нужно использовать ARRAY.size () вместо функции length

 var itemArray=//Assign some list of value;
    for (var i = 0; i < itemArray.length; i++){

          if(itemArray[i].value == null){
             Do nothing
              }else{
                 Do something
              }
    }
...