list怎么删除元素,java list 删除

  list怎么删除元素,java list 删除

  删除java列表元素的方法如下:

  第一,正序列缺失

  订单删除。如果最多只删除一个元素,删除后只需要使用break语句跳出循环。如果需要删除多个元素,如果不注意控制当前列表的大小和下一个元素的索引,很容易报告Java . lang . indexoutofboundsexception异常。

  public static void remove(ListString列表,字符串目标){

  for(int i=0,length=list . size();I长度;i ){

  string item=list . get(I);

  if(target.equals(item)){

  list . remove(item);

  长度-;

  I-;

  }

  }

  }免费学习视频教程推荐:java视频教程

  二、逆序删除

  向后删除可以克服向前删除需要额外管理列表大小和下一个元素的索引的问题,使用起来也非常方便。

  public static void remove(ListString列表,字符串目标){

  for(int I=list . size()-1;I=0;我- ){

  string item=list . get(I);

  if(target.equals(item)){

  list . remove(item);

  }

  }

  }三。删除迭代器remove()方法(推荐)

  public static void remove(ListString列表,字符串目标){

  iterator string ITER=list . iterator();

  while (iter.hasNext()) {

  string item=ITER . next();

  if (item.equals(target)) {

  ITER . remove();

  }

  }

  }四。CopyOnWriteArrayList线程安全删除

  使用CopyOnWrite容器。CopyOnWrite容器是一个写入时复制容器。通俗的理解是,我们在给容器添加元素的时候,并不是直接把元素添加到当前容器,而是先复制当前容器,复制出一个新的容器,然后再给新容器添加元素,添加元素后再把原容器的引用指向新容器。

  这样做的好处是,我们可以同时读取CopyOnWrite容器,而不用锁定它,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读写不同的容器。

  public static ListString remove(ArrayListString list,String target) {

  CopyOnWriteArrayListString cowList=new CopyOnWriteArrayListString(list);

  for (String item : cowList) {

  if (item.equals(target)) {

  cow list . remove(item);

  }

  }

  返回考利斯特;

  }注意:

  1.使用CopyOnWriteArrayList的好处是,我们不仅可以删除它,还可以在遍历时添加新元素。

  2.上述方法不修改参数列表,而是将CopyOnWriteArrayList返回给调用者。也就是说,CopyOnWriteArrayList并不修改构造它的链表,而是在内部维护一个链表,这一点要特别注意。

  3.CopyOnWriteArrayList不是ArrayList的子类,但它实现了List接口。

  第五,增强循环删除

  在for循环中,Java。util。如果在删除元素后继续循环,将会报告ConcurrentmodificationException异常,因为该元素在使用过程中被并发修改,导致引发异常。但如果在删除后立即使用break语句跳出循环,则不会触发错误,所以适合最多删除一个元素。

  public static void remove(ListString列表,字符串目标){

  for(字符串项:列表){

  if (item.equals(target)) {

  list . remove(item);

  打破;

  }

  }

  }六。流API过滤器

  Java8引入的stream API带来了一种新的简洁的删除列表元素的方法,filter。这个方法不会改变原来的列表对象,但是必须返回一个新的列表对象。下面的示例演示如何使用stream删除集合中的“*”元素。

  ListString list=new ArrayList();

  list . add( a );

  list . add( b );

  list . add( * );

  list . add( c );

  list . add( * );

  ListString结果=列表。流()。过滤器(项目-!*.等于(项目))。collect(collectors . to list());相关文章教程推荐:java入门教程以上是java如何删除list元素的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: