Я не уверен, что это дубликат или нет (возможно, это так), но я не могу найти то, что ищу.Java/Eclipse: удалить элемент ArrayList по указанному индексу
У меня есть статические ArrayList держит объекты, созданные из конструктора в этом классе, или любой класс, расширяющий его:
public static ArrayList<Person> PersonList = new ArrayList<>();
public Constructor(....){
PersonList.add(this);
}
Теперь я пытаюсь удалить объекты из этого ArrayList с помощью индекса, но я m получение ArrayIndexOutOfBounds: Array index out of range:
(указатель).
Теперь я знаю, что эта ошибка говорит мне, что в указанной позиции нет элемента, но тогда я не понимаю, почему PersonList.size() возвращает 4 (если в списке 4 элемента).
Я новичок в java, поэтому я надеюсь, что здесь кто-то может мне помочь. Вот код:
list.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent arg0) {
if(SwingUtilities.isRightMouseButton(arg0)) {
try {
Person.PersonList.remove(list.getSelectedIndex());
list.remove(list.getSelectedIndex());
}catch (Exception e) {
System.out.println(e);
}
System.out.println("Index: " + list.getSelectedIndex());
updateData();
}
}
});
С каким индексом вы пытаетесь получить доступ? – resueman
Список @resueman - это JList PersonList, и я пытаюсь удалить их как одним щелчком объекта. Я пытаюсь получить индекс выбранного пользователем строки JList и удалить запись PersonList этой строки. Не уверен, что это имеет смысл. –
Какая строка выдает ошибку? 'Person.PersonList.remove' или' list.remove'? Когда вы отлаживаете индекс, это правильный индекс, который вы хотите? –