Java: ArrayList - как я могу проверить, существует ли индекс?

Я использую ArrayList<String> и я добавляю данные в определенных индексах, как я могу проверить, существует ли определенный индекс?

Если я просто get() и проверьте значение? Или я должен ожидать исключения? Есть ли иначе?

Обновление

Спасибо за Ваши ответы, но потому что я только добавляю материал в определенных индексах, длина списка не покажет мне, которые доступны.

97
задан CubeJockey 22 June 2016 в 17:03
поделиться

6 ответов

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

if(index >= myList.size()){
  //index not exists
}else{
 // index exists
}
140
ответ дан 24 November 2019 в 05:23
поделиться

относительно вашего обновления (что, вероятно, должно быть еще одним вопросом). Вы должны использовать массив этих объектов вместо арайлиста, Таким образом, вы можете просто проверить значение для NULL:

Object[] array = new Object[MAX_ENTRIES];
..
if ( array[ 8 ] == null ) {
   // not available
}
else {
   // do something
}

Лучшая практика

Если у вас нет сотен записей в своем массиве, вы должны рассмотреть возможность организации его в качестве класса, чтобы избавиться от магии 3,8 и т. Д. ,

Контрольный поток с использованием исключения является плохим практикой.

6
ответ дан 24 November 2019 в 05:23
поделиться

Да, у меня та же проблема, я только что удалил css style дисплей: inline и добавил дисплей: list-item; float: left; моя проблема решена, надеюсь, это поможет.

Спасибо, Sankar B

-121--3096265-

Метод getAccuracy () объекта Location, возвращаемый onLocationChanged , дает хорошее представление о том, насколько хорош «fix».

-121--3978030-

Это то, что вам нужно...

public boolean indexExists(final List list, final int index) {
    return index >= 0 && index < list.size();
}

Почему бы не использовать простой старый массив? Индексированный доступ к списку - это кодовый запах, я думаю.

12
ответ дан 24 November 2019 в 05:23
поделиться

Вы можете проверить размер ArrayList Использование размера () метода. Это вернет максимальный индекс +1

3
ответ дан 24 November 2019 в 05:23
поделиться

Если ваш индекс меньше размера вашего списка, то он существует, возможно, с значением значение. Если индекс больше, то вы можете позвонить Sensurecapacity () , чтобы иметь возможность использовать этот индекс.

Если вы хотите проверить, является ли значение по вашему индексу NULL или нет, вызов Get ()

0
ответ дан 24 November 2019 в 05:23
поделиться

Вы можете проверить размер массива.

package sojava;
import java.util.ArrayList;

public class Main {
    public static Object get(ArrayList list, int index) {
        if (list.size() > index) { return list.get(index); }
        return null;
    }

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(""); list.add(""); list.add("");        
        System.out.println(get(list, 4));
        // prints 'null'
    }
}
0
ответ дан 24 November 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: