almost 3 years ago

首先,讓我先跟各位說聲抱歉呀!

小的我先前所發佈的兩個控件...尚須改版,錯誤百出! (罰跪

不過最近寫Code的時候,對於List的刪除有些疑問,所幸也解決了!

很多人在使用List常常會刪除某些元素,但有沒有想過,如果今天要刪除連續元素呢?

我相信肯定會出現問題,肯定會有東西沒有被刪到,或者刪錯的問題出現。

例如:

List<String> lists // 假設內部擁有 {"Java", "C", "Python", "Css", "Html"} 等元素

int[] deleteIndex = {0, 1, 2, 3, 4};

for(int i = 0 ; i < deleteIndex.lenght ; i++) {
    lists.remove(deleteIndex[i]);
}

結果:

"C", "Css" //不是全刪了嗎...

那假設

int[] deleteIndex = {0, 2, 4};

結果:

"C", "Css" //咦? 怎麼又正常了?

其實我們一個remove(move?)裡面的位置都會改變呀! 不要傻傻的就這樣刪刪刪...絕對有問題。

這時候,天地救星,Iterator就出現了,List元件內都有實現Iterator,但到底如何實現就不太明白,會用比較重要?

Iterator<String> iterator = lists.iterator();
int count = 0;
String[] deleteString = {"Java", "C", "Css", "Html"} 

while (iterator.hasNext()) {
    String s = iterator.next();
  if(s.equals(deleteString[count])) {
    iterator.remove();
    }
  count++;
} 

這樣就可以安全的刪除原素了!

P.S. 每次打程式太晚就準備蕁麻疹是怎樣...我是惹誰了! ((抓頭中

← [Android] SampleCalculator 簡單計算機 [Android] 關於 Handler 不可不知道的事 →
 
comments powered by Disqus