如何在Java中从ArrayList中移除一个子列表?


使用subList()和clear()方法

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

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

因此,要移除ArrayList的特定子列表,只需在列表对象上调用这两个方法,并指定要移除的子列表的边界,例如:

obj.subList().clear();

示例

 在线演示

import java.util.ArrayList;
public class RemovingSubList {
   public static void main(String[] args){
      //Instantiating an ArrayList object
      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);
      //Removing the sub list
      list.subList(4, 9).clear();
      System.out.println("Contents of the Array List after removing the sub list: \n"+list);
   }
}

输出

Contents of the Array List:
[JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
Contents of the Array List after removing the sub list:
[JavaFX, Java, WebGL, OpenCV, Mahout, Impala]

使用removeRange()方法

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

但这是一个受保护的方法,要使用它,需要:

  • 使用extends关键字继承ArrayList类(来自你的类)。

  • 实例化你的类。

  • 向获得的对象添加元素。

  • 然后,使用removeRange()方法移除所需的子列表。

示例

 在线演示

import java.util.ArrayList;
public class RemovingSubList extends ArrayList<String>{
   public static void main(String[] args){
      RemovingSubList list = new RemovingSubList();
      //Instantiating an ArrayList object
      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);
      //Removing the sub list
      list.removeRange(4, 9);
      System.out.println("Contents of the Array List after removing the sub list: \n"+list);
   }
}

输出

Contents of the Array List:
[JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
Contents of the Array List after removing the sub list:
[JavaFX, Java, WebGL, OpenCV, Mahout, Impala]

更新于:2019年10月11日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告