Как удалить конкретный объект из ArrayList в Java? - PullRequest
19 голосов
/ 15 декабря 2011

Как я могу удалить конкретный объект из ArrayList? Предположим, у меня есть класс, как показано ниже:

import java.util.ArrayList;    
public class ArrayTest {
    int i;

    public static void main(String args[]){
        ArrayList<ArrayTest> test=new ArrayList<ArrayTest>();
        ArrayTest obj;
        obj=new ArrayTest(1);
        test.add(obj);
        obj=new ArrayTest(2);
        test.add(obj);
        obj=new ArrayTest(3);
        test.add(obj);
    }
    public ArrayTest(int i){
        this.i=i;
    }
}

Как я могу удалить объект с new ArrayTest(1) из моего ArrayList<ArrayList>

Ответы [ 13 ]

0 голосов
/ 11 декабря 2014

Это помогло мне:

        card temperaryCardFour = theDeck.get(theDeck.size() - 1);
        theDeck.remove(temperaryCardFour);    

вместо

theDeck.remove(numberNeededRemoved);

Я получил конформацию удаления для первого фрагмента кода и константу удаления UNIC для второго.

Попробуйте поменять код с первым фрагментом кода. Я думаю, что это ваша проблема.

Натан Нельсон

0 голосов
/ 15 декабря 2011

Вы можете использовать Collections.binarySearch, чтобы найти элемент, а затем вызвать remove для возвращенного индекса.

См. Документацию для Collections.binarySearch здесь: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#binarySearch%28java.util.List,%20java.lang.Object%29

Для этого требуется, чтобы объект ArrayTest имел реализацию .equals. Вам также необходимо вызвать Collections.sort для сортировки списка. Наконец, ArrayTest должен реализовать интерфейс Comparable, чтобы двоичный поиск выполнялся правильно.

Это «правильный» способ сделать это на Java. Если вы просто хотите быстро и грязно решить проблему, то можете просто перебрать элементы и удалить элемент с искомым атрибутом.

0 голосов
/ 15 декабря 2011
    ArrayTest obj=new ArrayTest(1);
    test.add(obj);
    ArrayTest obj1=new ArrayTest(2);
    test.add(obj1);
    ArrayTest obj2=new ArrayTest(3);
    test.add(obj2);

    test.remove(object of ArrayTest);

вы можете указать способ управления каждым объектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...