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