удаление элементов из списка массивов - PullRequest
0 голосов
/ 25 ноября 2010

считают, что у меня есть список массивов, например: [2,5,1,8,6], и я хочу удалить все элементы с 1 до конца. И массив будет выглядеть так: [2,5] как я могу это сделать?спасибо

Ответы [ 5 ]

3 голосов
/ 25 ноября 2010

Стоит отметить, что вы не можете добавлять / удалять из Arrays.asList (), но вы можете это сделать.

List<Integer> list = Arrays.asList(2, 5, 1, 8, 6);
int idx = list.indexOf(1);
if (idx>=0) list = list.subList(0, idx);
3 голосов
/ 25 ноября 2010
List<Integer> list = Arrays.asList(2, 5, 1, 8, 6);
boolean remove = false;
Iterator<Integer> it = list.iterator();
while (it.hasNext() {
   if (!remove && it.next() == 1) {
      remove = true;
   }
   if (remove) {
      it.remove();
   }
}
0 голосов
/ 25 ноября 2010

Еще один способ сделать это - просто вытолкнуть предметы с конца List, пока мы не вытолкнем начальный элемент.Каждый элемент может быть получен за O (1) раз, поэтому вся операция O (n).

class Main{
    private static List<Integer> inputs = new ArrayList<Integer>();

    public static void main(String args[]){
        for (int x: new int[]{2,5,1,8,6})
            inputs.add(x);
        System.out.println(inputs);
        int start=inputs.indexOf(1);
        if (start>=0){ //check if there is a 1 in input
            while (inputs.size()>start)
                inputs.remove(inputs.size()-1);
        }
        System.out.println(inputs);

    }
}
0 голосов
/ 25 ноября 2010

Самый эффективный способ удалить элементы из ArrayList - удалить их из конца списка. Каждый элемент, который вы удаляете из середины списка, приведет к тому, что все последние элементы будут переехал влево . Если список большой, это может привести к значительному снижению производительности.

Однако, в вашем случае, вам может быть лучше просто создать новый подсписок с оставшимися двумя элементами.

0 голосов
/ 25 ноября 2010
list = list.subList(0, 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...