Java ArrayList和LinkedList remove()方法及示例

Java ArrayList和LinkedList remove()方法及示例

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

boolean remove(Object obj) :

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

  • 如果元素存在,从给定的列表中移除第一次出现的指定元素。如果该元素不存在,给定的列表不会被改变。
  • 在移除后,它将随后的元素(如果有的话)向左移动并将它们的索引减少1。

它抛出以下异常

ClassCastException – 如果指定元素的类型与这个集合不兼容 (可选).

NullPointerException – 如果指定元素为空,而这个集合不允许 null元素(可选).

UnsupportedOperationException – 如果删除操作不被这个集合支持

// A Java program to demonstrate working of list remove
// when Object to be removed is passed.
import java.util.*;
 
public class GFG
{
    public static void main(String[] args)
    {
        // Demonstrating remove on ArrayList
        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);
 
        // Demonstrating remove on LinkedList
        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]

object remove(int index) :

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

  • 删除后,它将后续元素(如果有的话)向左移动,并将其索引减少1。
  • 如果列表中包含int类型,那么当传递int时,该方法将被调用。

如果索引超出了范围,它会抛出IndexOutOfBoundsException。

// A Java program to demonstrate working of list remove
// when index is passed.
import java.util.*;
 
public class GFG
{
    public static void main(String[] args)
    {
        // Demonstrating remove on ArrayList
        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);
 
        // Demonstrating remove on LinkedList
        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]

重要的一点

  • 请注意,由于数组的大小是固定的,没有直接的方法来删除数组中的元素。所以没有类似add(), remove(), delete()的方法。但是在ArrayList和Hashset等集合中,我们有这些方法。因此,当我们需要这些方法时,最好将数组转换为ArrayList或者首先使用Arraylist。
  • 不建议在迭代元素时使用list接口的remove()。这可能会导致ConcurrentModificationException(请参考这个异常的示例程序)。当对元素进行迭代时,建议使用 Iterator.remove() 方法。详情请见此。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程