Java中的ArrayList和LinkedList remove()方法及其示例

Java中的列表接口 (由 ArrayList 链表 )提供了删除方法的两个版本。 布尔删除(对象对象对象): 它接受要删除的对象。如果找到并删除元素,则返回true。如果要删除的元素不存在,则返回false。

null
  • 从给定列表中删除指定元素的第一个匹配项(如果该元素存在)。如果元素不存在,则给定的列表不会更改。
  • 删除后,它会将后续元素(如果有)向左移动,并将其索引减少1。

它抛出以下异常 ClassCastException–如果指定元素的类型与此集合不兼容 (可选)。 NullPointerException–如果指定的元素为null且此集合不允许 空元素(可选)。 UnsupportedOperationException–如果此集合不支持删除操作

JAVA

// A Java program to demonstrate working of list remove
// when Object to be removed is passed.
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
// Demonstrating remove on ArrayList
List<String>  myAlist = new ArrayList<String>();
myAlist.add( "Geeks" );
myAlist.add( "Practice" );
myAlist.add( "Quiz" );
System.out.println( "Original ArrayList : " + myAlist);
myAlist.remove( "Quiz" );
System.out.println( "Modified ArrayList : " + myAlist);
// Demonstrating remove on LinkedList
List<String>  myLlist = new LinkedList<String>();
myLlist.add( "Geeks" );
myLlist.add( "Practice" );
myLlist.add( "Quiz" );
System.out.println( "Original LinkedList : " + myLlist);
myLlist.remove( "Quiz" );
System.out.println( "Modified LinkedList : " + myLlist);
}
}


输出

Original ArrayList : [Geeks, Practice, Quiz]Modified ArrayList : [Geeks, Practice]Original LinkedList : [Geeks, Practice, Quiz]Modified LinkedList : [Geeks, Practice]

对象删除(int索引): 它删除给定索引处的元素。它返回被删除的对象。

  • 删除后,它会将后续元素(如果有)向左移动,并将其索引减少1。
  • 如果列表包含int类型,则在传递int时调用此方法(请参阅 (详情请参阅)

如果索引超出范围,则抛出IndexOutOfBoundsException,

JAVA

// A Java program to demonstrate working of list remove
// when index is passed.
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
// Demonstrating remove on ArrayList
List<String> myAlist = new ArrayList<String>();
myAlist.add( "Geeks" );
myAlist.add( "Practice" );
myAlist.add( "Quiz" );
System.out.println( "Original ArrayList : " + myAlist);
myAlist.remove( "Quiz" );
System.out.println( "Modified ArrayList : " + myAlist);
// Demonstrating remove on LinkedList
List<String> myLlist = new LinkedList<String>();
myLlist.add( "Geeks" );
myLlist.add( "Practice" );
myLlist.add( "Quiz" );
System.out.println( "Original LinkedList : " + myLlist);
myLlist.remove( 2 );
System.out.println( "Modified LinkedList : " + myLlist);
}
}


输出

Original ArrayList : [Geeks, Practice, Quiz]Modified ArrayList : [Geeks, Practice]Original LinkedList : [Geeks, Practice, Quiz]Modified LinkedList : [Geeks, Practice]

要点:

  • 请注意,由于数组的大小是固定的,所以无法直接删除数组中的元素。所以没有像add()、remove()、delete()这样的方法。但是在像ArrayList和Hashset这样的集合中,我们有这些方法。因此,当我们需要这些方法时,最好将array转换为ArrayList,或者从第一位使用ArrayList。
  • 迭代元素时,不建议使用list接口的remove()。这可能会导致 ConcurrentModificationException (参考 对于有此异常的示例程序)。迭代元素时,建议使用 迭代器。删除() 方法请看 详细信息。

本文由 莫希特·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

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