如何从Java中的ArrayList中删除子列表?

使用subList()clear()方法

List接口的subList()方法接受两个表示元素索引的整数值,并返回当前List对象的视图,以移除指定索引之间的元素。

List接口的clear()方法从当前List对象中删除所有元素。

因此,要删除数组列表的特定子列表,您只需要通过指定需要删除的子列表的边界,就可以在列表对象上调用这两个方法-

obj.subList().clear();

示例

import java.util.ArrayList;
public class RemovingSubList {
   public static void main(String[] args){
      //实例化ArrayList对象
      ArrayList<String> list = new ArrayList<String>();
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the Array List: \n"+list);
      //删除子列表
      list.subList(4, 9).clear();
      System.out.println("Contents of the Array List after 删除子列表: \n"+list);
   }
}

输出结果

Contents of the Array List:
[JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
Contents of the Array List after 删除子列表:
[JavaFX, Java, WebGL, OpenCV, Mahout, Impala]

使用removeRange method()

AbstractList类方法的removeRange()方法接受表示当前ArrayList元素索引的两个整数值并将其删除。

但这是一种受保护的方法,要使用此方法,您需要

  • 使用extend关键字继承ArrayList类(从您的类)。

  • 实例化您的课程。

  • 将元素添加到获得的对象。

  • 然后,使用该removeRange()方法删除所需的subList 。

示例

import java.util.ArrayList;
public class RemovingSubList extends ArrayList<String>{
   public static void main(String[] args){
      RemovingSubList list = new RemovingSubList();
      //实例化ArrayList对象
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the Array List: \n"+list);
      //删除子列表
      list.removeRange(4, 9);
      System.out.println("Contents of the Array List after 删除子列表: \n"+list);
   }
}

输出结果

Contents of the Array List:
[JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
Contents of the Array List after 删除子列表:
[JavaFX, Java, WebGL, OpenCV, Mahout, Impala]
猜你喜欢