Java中的ArrayList和LinkedList remove()方法示例

Java中的ArrayList和LinkedList remove()方法示例

Java中的List接口(由ArrayList和LinkedList实现)提供了remove方法的两个版本。

boolean remove(Object obj) :

它接受要删除的对象。如果找到并删除该元素,则返回true。如果要删除的元素不存在,则返回false。

  • 如果要删除的元素存在于给定的列表中,则从给定列表中删除指定元素的首次出现。如果不存在该元素,则该列表不发生变化。
  • 删除后,它会将后续元素(如果有的话)向左移动并将它们的索引减1。

它抛出以下异常:

ClassCastException-如果指定元素的类型与此集合不兼容(可选)。

NullPointerException-如果指定元素为null并且此集合不允许null元素(可选)。

UnsupportedOperationException-如果此集合不支持删除操作。

// 一个Java程序来演示列表删除方法的工作方式
// 传递要删除的对象。
import java.util.*;
 
public class GFG
{
    public static void main(String[] args)
    {
        // 在ArrayList上演示remove
        List<String>  myAlist = new ArrayList<String>();
        myAlist.add("Geeks");
        myAlist.add("Practice");
        myAlist.add("Quiz");
        System.out.println("Original ArrayList : " + myAlist);
        myAlist.remove("Quiz");
        System.out.println("Modified ArrayList : " + myAlist);
 
        // 在LinkedList上演示remove
        List<String>  myLlist = new LinkedList<String>();
        myLlist.add("Geeks");
        myLlist.add("Practice");
        myLlist.add("Quiz");
        System.out.println("Original LinkedList : " + myLlist);
        myLlist.remove("Quiz");
        System.out.println("Modified LinkedList : " + myLlist);
    }
}

输出

Original ArrayList : [Geeks, Practice, Quiz]
Modified ArrayList : [Geeks, Practice]
Original LinkedList : [Geeks, Practice, Quiz]
Modified LinkedList : [Geeks, Practice]

对象remove(int index) :

它会删除给定索引处的元素。它返回被删除的对象。

  • 删除后,它会将后续元素(如果有的话)向左移动并将它们的索引减1。
  • 如果列表包含int类型,则在传递int时调用此方法(有关详细信息,请参阅此处)

如果索引越界,则会抛出IndexOutOfBoundsException异常,

// 一个Java程序来演示列表删除方法的工作方式
// 传递索引。
import java.util.*;
 
public class GFG
{
    public static void main(String[] args)
    {
        // 在ArrayList上演示remove
        List<String> myAlist = new ArrayList<String>();
        myAlist.add("Geeks");
        myAlist.add("Practice");
        myAlist.add("Quiz");
        System.out.println("Original ArrayList : " + myAlist);
        myAlist.remove("Quiz");
        System.out.println("Modified ArrayList : " + myAlist);
 
        // 在LinkedList上演示remove
        List<String> myLlist = new LinkedList<String>();
        myLlist.add("Geeks");
        myLlist.add("Practice");
        myLlist.add("Quiz");
        System.out.println("Original LinkedList : " +myLlist);
        myLlist.remove(2);
        System.out.println("Modified LinkedList : " + myLlist);
    }
}

输出

Original ArrayList : [Geeks, Practice, Quiz]
Modified ArrayList : [Geeks, Practice]
Original LinkedList : [Geeks, Practice, Quiz]
Modified LinkedList : [Geeks, Practice]
原始 ArrayList: [Geeks, Practice, Quiz]
修改后的 ArrayList: [Geeks, Practice]
原始 LinkedList: [Geeks, Practice, Quiz]
修改后的 LinkedList: [Geeks, Practice]

重要提示:

  • 注意,数组没有直接删除元素的方法,因为数组的大小是固定的。因此,数组中没有 add()、remove() 和 delete() 等方法。但是在像 ArrayList 和 HashSet 这样的集合中,我们有这些方法。因此,最好将数组转换为 ArrayList 或者在需要这些方法时从一开始就使用 ArrayList。
  • 不建议在迭代元素时使用 list 接口的 remove()。这可能导致 ConcurrentModificationException 异常(请参考此处的一个带有此异常的示例程序)。在迭代元素时,建议使用 Iterator.remove() 方法。请参阅此处以了解详细信息。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程