Мне нужна помощь с этим Java, пожалуйста. Я создал ArrayList лампочек и пытаюсь заменить лампочку по определенному индексу другой лампочкой. Итак, со следующим заголовком, как мне поступить?
Вы правы. Но вы можете подумать, что можете отредактировать его, потому что ваш ответ приводит к тому, что метод set () - это статический метод, не так ли?
Android Killer
9
@AndroidKiller Это статично, ArrayList.set();но когда вы вызываете его в своем собственном списке, это не так:myArrayList.set(int, E);
whitfin
Проблема в этом методе состоит в том, что он выдает arrayOutOfBoundException в случае, если arrayList не был инициализирован. Я хотел бы поместить элемент в правильный индекс при его добавлении, не уверен, есть ли способ сделать это.
Bionix1441,
@ Bionix1441, даже если список был инициализирован, все еще можно попытаться установить значение для индекса, который не существует. Так что вам просто нужно убедиться, что ваш индекс действителен.
ТотороТоторо
126
Вы можете заменить элементы в определенной позиции, используя метод set ArrayList, как показано ниже:
list.set( your_index, your_item );
Но элемент должен присутствовать в индексе, который вы передаете внутри метода set (), иначе он выдаст исключение.
@vaxquis Хорошо, сэр, пожалуйста, напишите java 8 и выпустите ее. мы здесь, чтобы использовать это. ;). В SO ответ должен быть всегда в соответствии с вопросом, поэтому, пожалуйста, сначала прочтите вопрос. И в чем проблема, если он возвращает предыдущее значение, если вы хотите это значение, то вы можете использовать другое, оставьте его. Он заменяет старое значение и это все.
Android Killer
1
@vaxquis ты читал мой комментарий раньше. Четко упомянутый ответ всегда должен быть в соответствии с вопросом. Человек, который задал вопрос, он упомянул, что хочет заменить элемент так, что означает, что у него есть arraylist с элементами в нем. теперь ясно, сэр ???
Android Killer
1
@vaxquis Вещи, которые вы считаете, новичок будет знать об этом, поэтому эти проблемы не имеют никакого смысла. Тем не менее я отредактировал, чтобы сделать тебя счастливым :)
Android Killer
2
Быть новичком означает, что кто-то НЕ ЗНАЕТ, как правильно что-то кодировать. ВСЕГДА неправильно указывать неверный код, и этому нет оправдания, потому что это может и обычно приводит в замешательство новичков. Предоставление правильного и автономного примера кода - вот о чем StackOverflow. Спасибо за улучшение вашего ответа.
Это будет работать только в том случае, если новый элемент равен старому в терминах метода equals (), верно?
spikemanuk
@spikemanuk, это зависит от реализации метода equals () в Item. Если равенство зависит исключительно от «id» «Item», то этот код можно использовать для замены «Item: {id = 1, name = London} на« Item: {id = 1, name = Paris}
Ответы:
Проверьте
set(int index, E element)
метод в интерфейсе спискаисточник
ArrayList.set();
но когда вы вызываете его в своем собственном списке, это не так:myArrayList.set(int, E);
Вы можете заменить элементы в определенной позиции, используя метод set ArrayList, как показано ниже:
Но элемент должен присутствовать в индексе, который вы передаете внутри метода set (), иначе он выдаст исключение.
источник
Используйте
set()
метод: см. Документисточник
Используйте ArrayList.set
источник
источник