ArrayList是 收集框架 并在java中出现。util包。它为我们提供了Java中的动态数组。不过,它可能比标准数组慢,但在需要对数组进行大量操作的程序中可能会有所帮助。这个类在 JAVAutil 包裹随着java版本的引入和升级,更新的方法正在出现,就好像我们确实从Java8中看到了感知lambda表达式和流概念在java版本8中引入之前是不可用的一样,所以我们有更多的方法在Arraylist上操作来执行操作。这里我们将讨论一种从ArrayList中删除元素的方法。
当从ArrayList中删除元素时,我们既可以通过索引删除元素,也可以通过ArrayList中的值删除元素。我们将通过一个干净的java程序来解释这两种方法。
方法:
有 3种从ArrayList中删除元素的方法 如下所列,稍后将披露如下:
- 按索引使用remove()方法(默认)
- 按值使用remove()方法
- 在迭代器上使用remove()方法
注: 不建议使用ArrayList。在元素上迭代时删除()。
方法1: 通过索引使用remove()方法
这是一个默认方法,只要我们在数据结构上使用任何方法,它基本上只在索引上运行,所以每当我们使用remove()方法时,我们基本上是从ArrayList的索引中删除元素。
ArrayList类 提供两个重载的remove()方法。
- 删除(int索引): 接受要删除的对象的索引
- 移除(对象obj): 接受要删除的对象
让我们通过下面提供的例子来计算:
例子:
JAVA
// Java program to Remove Elements from ArrayList // Using remove() method by indices // Importing required classes import java.util.ArrayList; import java.util.List; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating an object of List interface with // reference to ArrayList class List<Integer> al = new ArrayList<>(); // Adding elements to our ArrayList // using add() method al.add( 10 ); al.add( 20 ); al.add( 30 ); al.add( 1 ); al.add( 2 ); // Printing the current ArrayList System.out.println(al); // This makes a call to remove(int) and // removes element 20 al.remove( 1 ); // Now element 30 is moved one position back // So element 30 is removed this time al.remove( 1 ); // Printing the updated ArrayList System.out.println(al); } } |
[10, 20, 30, 1, 2][10, 1, 2]
现在我们已经看到通过上面的索引删除ArrayList中的元素,现在让我们看看传递的参数被认为是索引。如何按值删除元素。
方法2: 按值使用remove()方法
例子:
JAVA
// Java program to Remove Elements from ArrayList // Using remove() method by values // Importing required classes import java.util.ArrayList; import java.util.List; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating an object of List interface with // reference to ArrayList List<Integer> al = new ArrayList<>(); // Adding elements to ArrayList class // using add() method al.add( 10 ); al.add( 20 ); al.add( 30 ); al.add( 1 ); al.add( 2 ); // Printing the current ArrayList System.out.println(al); // This makes a call to remove(Object) and // removes element 1 al.remove( new Integer( 1 )); // This makes a call to remove(Object) and // removes element 2 al.remove( new Integer( 2 )); // Printing the modified ArrayList System.out.println(al); } } |
输出:
[10, 20, 30,1 ,2][10, 20, 30]
注: 不建议使用ArrayList。在元素上迭代时删除()。
方法3: 使用迭代器。remove()方法
这可能会导致 ConcurrentModificationException 迭代元素时,建议使用 迭代器。删除() 方法
例子:
JAVA
// Java program to demonstrate working of // Iterator.remove() on an integer arraylist import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class GFG { // Main driver method public static void main(String[] args) { // Creating an ArrayList List<Integer> al = new ArrayList<>(); // Adding elements to our ArrayList // using add() method al.add( 10 ); al.add( 20 ); al.add( 30 ); al.add( 1 ); al.add( 2 ); // Printing the current ArrayList System.out.println(al); // Creating iterator object Iterator itr = al.iterator(); // Holds true till there is single element // remaining in the object while (itr.hasNext()) { // Remove elements smaller than 10 using // Iterator.remove() int x = (Integer)itr.next(); if (x < 10 ) itr.remove(); } // Printing the updated ArrayList System.out.print(al); } } |
[10, 20, 30, 1, 2][10, 20, 30]
本文由 尼茨海伦德拉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。