偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

動(dòng)態(tài)刪除ArrayList中的元素

開發(fā) 后端
昨天一位項(xiàng)目組同事需要在ArrayList中刪除所有不等于指定值的元素,但是她弄了很久,發(fā)現(xiàn)總是刪得不完全。剛好我以前做過類似的功能,就告訴她是因?yàn)锳rrayList刪除元素后長(zhǎng)度變小了,元素的索引也會(huì)跟著改變,但是迭代的下標(biāo)沒有跟著相應(yīng)的改變的緣故。

昨天一位項(xiàng)目組同事需要在ArrayList中刪除所有不等于指定值的元素,但是她弄了很久,發(fā)現(xiàn)總是刪得不完全。剛好我以前做過類似的功能,就告訴她是因?yàn)锳rrayList刪除元素后長(zhǎng)度變小了,元素的索引也會(huì)跟著改變,但是迭代的下標(biāo)沒有跟著相應(yīng)的改變的緣故。

將一些刪除方法做一些總結(jié):

  1. /**  
  2.       * 刪除Arraylist中值為"c"的元素  
  3.       */ 
  4.      public static void main(String[] args) {  
  5.            
  6.          List<String> list = new ArrayList<String>();  
  7.            
  8.          //"c"在Arraylist不連續(xù)存儲(chǔ)  
  9.          /*  
  10.          list.add("c");  
  11.          list.add("a");  
  12.          list.add("c");  
  13.          list.add("b");  
  14.          list.add("c");  
  15.          list.add("d");  
  16.          list.add("c");  
  17.          */ 
  18.            
  19.          //"c"在Arraylist有連續(xù)存儲(chǔ)  
  20.          list.add("a");  
  21.          list.add("c");  
  22.          list.add("c");  
  23.          list.add("b");  
  24.          list.add("c");  
  25.          list.add("c");  
  26.          list.add("d");  
  27.          list.add("c");  
  28.            
  29.            
  30.          //刪除Arraylist中值為"c"的元素  
  31.            
  32.          //有可能不能全部刪除  
  33.          //removeListElement1(list);  
  34.            
  35.          //能夠正確刪除  
  36.          //removeListElement2(list);  
  37.            
  38.          //能夠正確刪除  
  39.          //removeListElement3(list);  
  40.      }  
  41.        
  42.        
  43.      /**  
  44.       *        刪除list中值為"c"的元素  
  45.       *   
  46.       *   這種方式:  
  47.       *     
  48.       *   當(dāng)值為"c"的元素在Arraylist中不連續(xù)存儲(chǔ)的時(shí)候,是可以把值為"c"的元素全部刪掉  
  49.       *     
  50.       *   但是當(dāng)值為"c"的元素在Arraylist中有連續(xù)存儲(chǔ)的時(shí)候,就沒有把值為"c"的元素全部刪除  
  51.       *   因?yàn)閯h除了元素,Arraylist的長(zhǎng)度變小了,索引也會(huì)改變,但是迭代的下標(biāo)沒有跟著變小  
  52.       */ 
  53.      public static void removeListElement1(List<String> list) {  
  54.          for(int i=0;i<list.size();i++) {  
  55.              if("c".equals(list.get(i))) {  
  56.                  list.remove(i);  
  57.              }  
  58.          }  
  59.            
  60.      }  
  61.        
  62.      /**  
  63.       * 刪除Arraylist中值為"c"的元素  
  64.       *   
  65.       * 這種方式:  
  66.       *   
  67.       * 不管值為"c"的元素在Arraylist中是否連續(xù),都可以把值為"c"的元素全部刪除  
  68.       */ 
  69.      public static void removeListElement2(List<String> list) {  
  70.          for(int i=0;i<list.size();i++) {  
  71.              if("c".equals(list.get(i))) {  
  72.                  list.remove(i);  
  73.                  --i;//刪除了元素,迭代的下標(biāo)也跟著改變  
  74.              }  
  75.          }  
  76.      }  
  77.        
  78.      /**  
  79.       * 刪除Arraylist中值為"c"的元素  
  80.       *   
  81.       * 這種方式:  
  82.       *   
  83.       * 不管值為"c"的元素在list中是否連續(xù),都可以把值為"c"的元素全部刪除  
  84.       *   
  85.       * 需保證沒有其他線程同時(shí)在修改  
  86.       */ 
  87.      public static void removeListElement3(List<String> list) {  
  88.          Iterator<String> iterator = list.iterator();  
  89.          while(iterator.hasNext()) {  
  90.              String str = iterator.next();  
  91.              if("c".equals(str)) {  
  92.                  iterator.remove();  
  93.              }  
  94.                
  95.          }  
  96.      } 

原文鏈接:http://www.cnblogs.com/luxh/archive/2012/05/19/2509314.html

責(zé)任編輯:林師授 來源: programmer_luxh的博客
相關(guān)推薦

2015-03-25 11:42:52

Java刪除特定元素

2015-08-04 09:18:26

JavaArrayList元素

2012-03-19 09:57:09

JavaArrayList

2024-01-05 15:06:04

元素程序員review

2022-01-07 19:50:14

元素java集合

2012-01-12 13:24:55

Java

2019-11-06 16:21:25

ArrayListLinkedListVector

2021-07-22 09:53:34

Vector類Java添加元素

2022-01-20 09:58:44

Python元素列表

2023-08-30 09:00:05

2011-05-26 14:49:53

ArrayListLinkedList

2020-12-14 08:03:52

ArrayList面試源碼

2009-11-25 16:40:55

PHP函數(shù)array_

2009-11-24 18:28:44

PHP函數(shù)array_

2024-06-03 10:07:22

Vector類元素向量

2010-09-08 17:11:29

CSS塊元素CSS內(nèi)聯(lián)元素

2009-11-30 18:21:21

PHP刪除數(shù)組元素

2024-10-05 00:00:15

ArrayList性能Java

2023-04-03 07:03:51

阿里巴巴List元素

2021-07-12 11:01:15

Vector元素方法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)