Посмотрел много чужого кода у всех такое решение, не могу себе объяснить почему так, почему все используют strings.remove(i) для удаления буквы! помогите!
Никита Ильин
12 уровень
Разве strings.remove(i) не должна удалять элемент массива, а именно целое слово? Не могу никак понять!
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
22 сентября 2019, 19:52
так и есть, удаляет элемент массива, там ведь не букву удалить надо.
В идеале хорошо бы код видеть, чтобы понимать о чем конкретно речь.
0
Никита Ильин
22 сентября 2019, 20:01
В том то и дело, что нужно заменить букву "р" в первых трех элементов массива типа string,
прикрепляю первый попавшийся чужой код, но уверяю все остальные идентичны. И я не могу понять почему все делают именно так.
Р или Л
public class Solution {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>();
strings.add("роза");
strings.add("лоза");
strings.add("лира");
strings = fix(strings);
for (String string : strings) {
System.out.println(string);
}
}
public static ArrayList<String> fix(ArrayList<String> strings) {
boolean isContain1;//удалять из списка строк все слова, содержащие букву «р»
boolean isContain2;//удваивать все слова содержащие букву «л»
for (int i = 0; i < strings.size();) {
isContain1 = strings.get(i).contains("р");
isContain2 = strings.get(i).contains("л");
if (isContain1 & !isContain2)
strings.remove(i);
else if (isContain2 & !isContain1) {
strings.add(i, strings.get(i));
i += 2;
}
else i++;
}
return null;
}
}
0
Boarder QA Automation Engineer в ЛАНИТ
22 сентября 2019, 20:38
удаляет не букву, а слово (содержащее нужную букву). По факту удаляется из списочного массива элемент с индексом i
0
Дмитрий
22 сентября 2019, 22:18
в данном коде как раз удаляют целиком слово (элемент массива), которое содержит "Р"
0