使用Object属性从ArrayList中删除对象

dja*_*ngo 4 java loops arraylist object

我正在维护一个ArrayList对象.我的对象结构是Id,名称,其他一些细节.我需要删除一个具有一些id值的对象(10)并且我不想迭代列表.这有什么解决方案吗?

Tag*_*eev 21

使用Java-8 Collection#removeIf

myList.removeIf(obj -> obj.id == 10);
Run Code Online (Sandbox Code Playgroud)

使用Java-7,您将不得不使用迭代器:

for(Iterator<MyType> iterator = myList.iterator(); iterator.hasNext(); ) {
    if(iterator.next().id == 10)
        iterator.remove();
}
Run Code Online (Sandbox Code Playgroud)

请注意,无论如何都需要列表迭代.在Java-8 removeIf方法中,它只是在内部执行.