摘要:總結(jié)一下從中刪除數(shù)據(jù)的一些方法使用,這個(gè)是和源碼中經(jīng)常使用到的一種方法,所以最為推薦倒序刪除,以防因?yàn)閯h除中間項(xiàng)導(dǎo)致數(shù)據(jù)下標(biāo)變更,使得數(shù)據(jù)出錯(cuò)順序刪除,但是對(duì)下標(biāo)和索引進(jìn)行了處理在遍歷過程中不直接操作原
總結(jié)一下從list中刪除數(shù)據(jù)的一些方法:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { ArrayListstrs = new ArrayList<>(); strs.add("1"); strs.add("32"); strs.add("3"); strs.add("4"); strs.add("5"); strs.add("36"); // remove1(strs); // remove2(strs); // remove3(strs); remove4(strs); System.out.println("after"); printList(strs); } //使用iterator,這個(gè)是java和Android源碼中經(jīng)常使用到的一種方法,所以最為推薦 public static void remove1(List list) { Iterator sListIterator = list.iterator(); while (sListIterator.hasNext()) { String str = sListIterator.next(); if (str.contains("3")) { sListIterator.remove(); } } } //倒序刪除,以防因?yàn)閯h除中間項(xiàng)導(dǎo)致數(shù)據(jù)下標(biāo)變更,使得數(shù)據(jù)出錯(cuò) public static void remove2(List list) { for (int i = list.size() - 1; i >= 0; i--) { if (list.get(i).contains("3")) { list.remove(i); } } } // 順序刪除,但是對(duì)下標(biāo)和索引進(jìn)行了處理 public static void remove3(List list) { for (int i = 0, len = list.size(); i < len; i++) { if (list.get(i).contains("3")) { list.remove(i); len--; i--; } } } // 在遍歷過程中不直接操作原list public static void remove4(List list) { List temp = new ArrayList<>(); for (String str : list) { if (str.contains("3")) { temp.add(str); } } list.removeAll(temp); } public static void printList(List list) { for (String str : list) { System.out.println(str); } } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68307.html
摘要:通過進(jìn)行遍歷刪除符合條件的多個(gè)元素使用的方式也可以順利刪除和遍歷這里要使用的方法移除當(dāng)前對(duì)象,如果使用的方法,則同樣會(huì)出現(xiàn) 1.通過增強(qiáng)的for循環(huán)刪除符合條件的多個(gè)元素 /** * 使用增強(qiáng)的for循環(huán) * 在循環(huán)過程中從List中刪除元素以后,繼續(xù)循環(huán)List時(shí)會(huì)報(bào)ConcurrentModificationException */ public void l...
摘要:對(duì)多個(gè)一維數(shù)組進(jìn)行并運(yùn)算,實(shí)際上就是加強(qiáng)版的。所以我要說的是這個(gè)函數(shù),將傳入?yún)?shù)轉(zhuǎn)換為一個(gè)數(shù)組進(jìn)行到的回調(diào)函數(shù)中,以此達(dá)到函數(shù)接到的是一個(gè)一維數(shù)組的集合。 每次小章節(jié)的開題都煩惱寫什么好,所以直接接下文 (~o▔▽▔)~o o~(▔▽▔o~) 。 _.first = _.head = _.take = function(array, n, guard) { if (arra...
摘要:如果需要?jiǎng)?chuàng)建對(duì)象,則必須與一個(gè)被迭代的集合。這是一個(gè)有狀態(tài)的方法該方法用于保證對(duì)該流的后續(xù)訪問中最大允許訪問的元素個(gè)數(shù)。可以對(duì)集合元素進(jìn)行整體的聚集操作。 Java集合分為Set(無序、不可重復(fù))、List(有序、重復(fù))、Queue(隊(duì)列)和Map(映射關(guān)系) Java集合概述 數(shù)組元素既可以是基本類型的值,也可以是對(duì)象(實(shí)際保存對(duì)象的引用變量)集合只能保存對(duì)象(實(shí)際保存對(duì)象的引用變量...
開篇四連問你是否懶得寫普通的增刪改查方法?你是否不喜歡代碼生成插件的重復(fù)代碼?你是否渴望一個(gè)沒有冗余代碼的項(xiàng)目?你是否渴望一行代碼都不用寫就能完成一個(gè)簡單的模塊?組件由來作為后端程序員,相信大家都寫過以下幾種代碼: 根據(jù)主鍵查詢多條件分頁查詢插入根據(jù)主鍵修改根據(jù)主鍵刪除(單個(gè)或批量)拋開業(yè)務(wù)來說,這幾種代碼是我們項(xiàng)目中最最基本的代碼了,每一個(gè)項(xiàng)目中都會(huì)出現(xiàn)大量的這種代碼。那么你的項(xiàng)目中這種代碼你是...
摘要:集合框架重點(diǎn)理解用于存儲(chǔ)數(shù)據(jù)的容器。集合容器在不斷向上抽取過程中。出現(xiàn)了集合體系。,刪除將集合中的元素全刪除,清空集合。刪除集合中指定的對(duì)象。注意刪除成功,集合的長度會(huì)改變。作用用于取集合中的元素。是集合特有的迭代器。是單列集合是雙列集合 集合框架(重點(diǎn)理解):用于存儲(chǔ)數(shù)據(jù)的容器。特點(diǎn):1:對(duì)象封裝數(shù)據(jù),對(duì)象多了也需要存儲(chǔ)。集合用于存儲(chǔ)對(duì)象。2:對(duì)象的個(gè)數(shù)確定可以使用數(shù)組,但是不確定怎...
閱讀 3548·2019-08-30 12:58
閱讀 930·2019-08-29 16:37
閱讀 2803·2019-08-29 16:29
閱讀 3108·2019-08-26 12:18
閱讀 2372·2019-08-26 11:59
閱讀 3418·2019-08-23 18:27
閱讀 2790·2019-08-23 16:43
閱讀 3306·2019-08-23 15:23