如何在Java中从ArrayList中删除元素?

ArrayList是 收集框架 并在java中出现。util包。它为我们提供了Java中的动态数组。不过,它可能比标准数组慢,但在需要对数组进行大量操作的程序中可能会有所帮助。这个类在 JAVAutil 包裹随着java版本的引入和升级,更新的方法正在出现,就好像我们确实从Java8中看到了感知lambda表达式和流概念在java版本8中引入之前是不可用的一样,所以我们有更多的方法在Arraylist上操作来执行操作。这里我们将讨论一种从ArrayList中删除元素的方法。

null

当从ArrayList中删除元素时,我们既可以通过索引删除元素,也可以通过ArrayList中的值删除元素。我们将通过一个干净的java程序来解释这两种方法。

方法:

3种从ArrayList中删除元素的方法 如下所列,稍后将披露如下:

  1. 按索引使用remove()方法(默认)
  2. 按值使用remove()方法
  3. 在迭代器上使用remove()方法

注: 不建议使用ArrayList。在元素上迭代时删除()。

方法1: 通过索引使用remove()方法

这是一个默认方法,只要我们在数据结构上使用任何方法,它基本上只在索引上运行,所以每当我们使用remove()方法时,我们基本上是从ArrayList的索引中删除元素。

ArrayList类 提供两个重载的remove()方法。

让我们通过下面提供的例子来计算:

例子:

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主页上,并帮助其他极客。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享