Java Как удалить элемент из списка Array List - PullRequest
1 голос
/ 24 марта 2019

У меня есть вложенный ArrayList, как показано ниже, с логическими значениями.Я хочу удалить, например, 3-й элемент из всех строк.Я попытался с циклом, но он не разрешает remove как метод.Как мне это сделать?Большое спасибо за вашу помощь.

for (int i = 0; i < list.size(); i++){
     list.get(i).remove(3)// this remove method shows as an error in IDE
 }

true    false   true    false   false   false
false   false   true    false   true    true

Ответы [ 3 ]

2 голосов
/ 24 марта 2019

Я не вижу ошибок в вашей логике, я полагаю, что вы пропустили ';'с конца снимите (3).Кстати, List - это интерфейс, вам нужно создать его как ArrayList (или как-то еще).

2 голосов
/ 24 марта 2019

... Это список List<Instance> listInstances = new ArrayList<Instance>();, а класс Instance имеет vals = new ArrayList<Boolean>(); ....

В этом случае ваше решение может выглядеть так:

public static Instance deleleNthElement(Instance instance, int index) {
    instance.getVals().remove(index - 1);
    return instance;
}

тогда с помощью stream вы можете вызвать метод так:

int index = 3;
listInstances = listInstances.stream()
          .map(instance -> deleleNthElement(instance, index))
          .collect(Collectors.toList());
1 голос
/ 24 марта 2019

Я связал следующее вместе, кажется, делает то, что вы хотели:

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {

    public static void main(String[] args) throws IOException {

        List<Boolean> row1 = new ArrayList<Boolean>(Arrays.asList(new Boolean[] {true,false,true,true}));
        List<Boolean> row2 = new ArrayList<Boolean>(Arrays.asList(new Boolean[] {true,true,false,true}));
        List<List<Boolean>> list = Arrays.asList(new ArrayList[] {(ArrayList) row1, (ArrayList) row2});

        for (int i=0;i<list.size();i++){
            list.get(i).remove(3);// this remove method shows as an error in IDE
        }
        for (List<Boolean> ll : list) {
            for (Boolean l : ll) {
                System.out.print(l + ",");
            }
            System.out.println();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...