如何从 Java 中的 ArrayList 或 LinkedList 中删除元素?

javaobject oriented programmingprogramming更新于 2025/6/30 16:44:17

ArrayList 和 LinkedList 类实现 java.util 包的 List 接口。此接口提供了两种 remove() 方法的变体来删除特定元素,如下所示 −

  • E remove(int index)

  • boolean remove(Object o) −

使用其中一种方法,您可以从 Java 中的 List 或 linkedList 中删除所需元素。

E remove(int index) − 此方法接受表示 List 对象中特定位置的整数,并删除给定位置的元素。如果删除操作成功,则此方法返回已删除的元素。

如果传递给此方法的索引值小于 0 或大于 1,则会引发 IndexOutOfBoundsException 异常。

示例

import java.util.ArrayList;
public class RemoveExample {
   public static void main(String[] args) {
      //实例化 ArrayList 对象
      ArrayList<String> arrayList = new ArrayList<String>();
      arrayList.add("JavaFX");
      arrayList.add("Java");
      arrayList.add("WebGL");
      arrayList.add("OpenCV");
      System.out.println("数组列表的内容:"+arrayList);
      //删除元素
      System.out.println("已删除元素:");
      System.out.println(arrayList.remove(0));
      System.out.println(arrayList.remove(2));
      System.out.println(" ");
      //实例化 LinkedList 对象
      ArrayList<String> linkedList = new ArrayList<String>();
      linkedList.add("Krishna");
      linkedList.add("Satish");
      linkedList.add("Mohan");
      linkedList.add("Radha");
      System.out.println("链接列表的内容:"+arrayList);
      //删除元素
      System.out.println("Elements removed: ");
      System.out.println(linkedList.remove(0));
      System.out.println(linkedList.remove(2));
   }
}

输出

数组列表的内容:[JavaFx、Java、WebGL、OpenCV]
删除的元素:
JavaFX
OpenCV

链接列表的内容:[Java、WebGL]
删除的元素:
Krishna
Radha

boolean remove(Object o) − 此方法接受表示列表中元素的对象,并删除给定元素的第一次出现。此方法返回布尔值,即 −

  • 如果操作成功,则为 true。

  • 如果操作不成功,则为 false。

示例

import java.util.ArrayList;
public class RemoveExample {
   public static void main(String[] args) {
      //实例化 ArrayList 对象
      ArrayList<String> arrayList = new ArrayList<String>();
      arrayList.add("JavaFX");
      arrayList.add("Java");
      arrayList.add("WebGL");
      arrayList.add("OpenCV");
      System.out.println("数组列表的内容:"+arrayList);
      //删除元素
      System.out.println("元素已删除:");
      System.out.println(arrayList.remove("JavaFX"));
      System.out.println(arrayList.remove("WebGL"));
      System.out.println(" ");
      //实例化 LinkedList 对象
      ArrayList<String> linkedList = new ArrayList<String>();
      linkedList.add("Krishna");
      linkedList.add("Satish");
      linkedList.add("Mohan");
      linkedList.add("Radha");
      System.out.println("链接列表的内容:"+linkedList);
      //删除元素
      System.out.println("Elements removed: ");
      System.out.println(linkedList.remove("Satish"));
      System.out.println(linkedList.remove("Mohan"));
      System.out.println("Contents of the linked List after removing elements: "+linkedList);
   }
}

输出

数组列表的内容:[JavaFX、Java、WebGL、OpenCV]
删除的元素:
true
true
删除元素后的数组列表的内容:[Java、OpenCV]

链接列表的内容:[Krishna、Satish、Mohan、Radha]
删除的元素:
true
true
删除元素后的链接列表的内容:[Krishna、Radha]

Iterator 对象的 remove() 方法

除了这两种方法之外,您还可以使用 Iterator 类的 remove() 删除 LinkedList 或 ArrayList 对象的元素。

示例

import java.util.ArrayList;
import java.util.Iterator;
public class RemoveExample {
   public static void main(String[] args) {
      //实例化 ArrayList 对象
      ArrayList<String> arrayList = new ArrayList<String>();
      arrayList.add("JavaFX");
      arrayList.add("Java");
      arrayList.add("WebGL");
      arrayList.add("OpenCV");
      System.out.println("数组列表的内容:"+arrayList);
      //检索 Iterator 对象
      Iterator<String> it1 = arrayList.iterator();
      it1.next();
      it1.remove();
      System.out.println("删除元素后数组列表的内容:");
      while(it1.hasNext()) {
         System.out.println(it1.next());
      }
      //实例化 LinkedList 对象
      ArrayList<String> linkedList = new ArrayList<String>();
      linkedList.add("Krishna");
      linkedList.add("Satish");
      linkedList.add("Mohan");
      linkedList.add("Radha");
      System.out.println("链接列表的内容:"+linkedList);
      //检索 Iterator 对象
      Iterator<String> it2 = linkedList.iterator();
      it2.next();
      it2.remove();
      System.out.println("删除元素后链接列表的内容:");
      while(it2.hasNext()) {
         System.out.println(it2.next());
      }
   }
}

输出

数组列表的内容:[JavaFX、Java、WebGL、OpenCV]
删除元素后的数组列表的内容:
Java
WebGL
OpenCV
链接列表的内容:[Krishna、Satish、Mohan、Radha]
删除元素后的链接列表的内容:
Satish
Mohan
Radha

相关文章


有用资源