集合foreach迴圈和三種迭代的刪除
增強for—foreach迴圈
* 簡化陣列和Collection集合的遍歷
格式: for(元素資料型別 變數 : 陣列或者Collection集合) { 使用變數即可,該變數就是元素 } 好處 * 簡化遍歷
三種迭代的能否刪除
import java.util.ArrayList; import java.util.Iterator; import bean.Person; public class g { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {11,22,33,44,55}; for (int i : arr) { System.out.println(i); } ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); for (String string : list) { System.out.println(string); } ArrayList<Person> alist = new ArrayList<>(); alist.add(new Person("張三", 23)); alist.add(new Person("李四", 24)); alist.add(new Person("王五", 25)); alist.add(new Person("趙六", 26)); for (Person person : alist) { System.out.println(person); } ArrayList<String> list1 = new ArrayList<>(); list1.add("a"); list1.add("b"); list1.add("c"); list1.add("d"); //1,普通for迴圈刪除 for(int i = 0; i < list1.size(); i++) { if("b".equals(list1.get(i))) { list1.remove(i);//通過索引刪除元素 } } System.out.println(list1);//[a, c, d] ArrayList<String> list2 = new ArrayList<>(); list2.add("a"); list2.add("b"); list2.add("b"); list2.add("c"); list2.add("d"); list2.add("e"); list2.add("f"); list2.add("g"); //1,普通for迴圈刪除,索引要-- for(int i = 0; i < list2.size(); i++) { if("b".equals(list2.get(i))) { list2.remove(i);//通過索引刪除元素 //當刪除索引為1的b時,此刻後面的索引全部向前走第二個索引為2的b向前一步他的索引即變為1 //此刻i的值為1,執行後i++變為2,即後來索引為1的b不被判斷 //應該list2.remove(i--); } } System.out.println(list2);//[a, b, c, d] //2,迭代器刪除 Iterator<String> it = list2.iterator(); while(it.hasNext()) { if("e".equals(it.next())) { //list2.remove("e"); //不能用集合的刪除方法,因為迭代過程中如果集合修改會出現併發修改異常 // java.util.ConcurrentModificationException it.remove(); } } System.out.println(list2);//[a, b, c, d, f, g] //第二種 for(Iterator<String> it2 = list2.iterator(); it2.hasNext();) { if("f".equals(it2.next())) { //list.remove("f");//不能用集合的刪除方法,因為迭代過程中如果集合修改會出現併發修改異常 it2.remove(); } } System.out.println(list2);//[a, b, c, d, g] //3,增強for迴圈,增強for迴圈不能刪除,只能遍歷 for (String string : list) { if("d".equals(string)) { //list2.remove("d"); } } System.out.println(list2); } }
相關推薦
集合foreach迴圈和三種迭代的刪除
增強for—foreach迴圈 * 簡化陣列和Collection集合的遍歷 格式: for(元素資料型別 變數 : 陣列或者Collection集合) { 使用變數即可,該變數就是元素 } 好處 * 簡化遍歷 三種迭代的能否刪除 import java.util.Arr
三種迭代的能否刪除
public class Demo1_Foreach { /** * * A:增強for概述 * 簡化陣列和Collection集合的遍歷 * B:格式: * for(元素資料型別 變數 : 陣列或者Collection集合) { 使用變數即可,該變
ArrayList之三種迭代方法
Collection cn = new ArrayList(2); cn.add(123); cn.add(123); cn.add("fd");
集合框架之三種叠代的能否刪除
-- 16px size ren 中修改 exce .get rem cat 一:普通for循環的刪除 1 // 普通for循環,通過索引刪除,刪除後索引要-- 2 for (int i = 0; i < list.size(); i++) { 3
python 入門第三課 迭代物件Iterable和迭代器Iterator
迭代物件Iterable和迭代器Iterator __author__ = 'admin' from collections.abc import Iterator from collections.abc import Iterable print(isinstance([],Iterable)) p
分析Iterator和ListIiterator這兩種迭代器~
首先需要明確一點:迭代器指向的位置是元素之前的位置,如圖所示: 假設集合List是由List1、List2和List3組成,當使用語句:Iterator it=List.iterator()時,迭代器it指向的位置是上圖中Iterator1指向的位置,當使用語句:it.
數學建模三 單變數優化和求解 牛頓迭代法
#include<iostream> #include<cmath> using namespace std; double f(double x); double f1(do
Python五種迭代方式 for迴圈,列表推導式,內建函式map(),生成器推導式,生成器函式 速度對比
對比了Python3的五種迭代方式進行函式簡單計算的花費時間 五種迭代分別是,for迴圈,列表推導式,內建函式map(),生成器推導式,生成器函式 簡單計算以add()加10操作和abs()絕對值舉例
JavaScript中BOOLEAN類型之三種情景代碼舉例
flag art 代碼 解讀 track .org lan 對象 alert <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w
三種繼承方式和三種訪問權限
-a prot play 9.png png -h .cn orm font 也就是說子類只能訪問父類的保護和公有成員,而對象只能訪問公有成員。繼承方式 1. 三種繼承方式不影響子類對父類的訪問權限,子類對父類只看父類的訪問控制權。 2. 繼承
Java中List集合遍歷的三種方式
asn tex iter for nbsp next next() ray string 首先創建一個List集合: List<String> list = new ArrayList<String>();list.add("name"); list
./和../和/三種路徑的區別
text 什麽 mage 鏈接 body bubuko href 根目錄 nbsp 本文為博主原創,未經允許不得轉載: 在JavaScript中,經常用到./和../及/路徑訪問指定的資源,但三者有什麽區別: ./表示當前目錄 ../表示
mybatis 中 foreach collection的三種用法
app key bsp arr onf array數組 自己 構建 符號 轉載:http://blog.sina.com.cn/s/blog_b0d90e8c0102v1q1.html 傳參參考:http://www.cnblogs.com/ruiati/p/6410339
應用負載均衡之LVS(一):基本概念和三種模式
保存 訪問 方式 video big key vhdl cisc vid 網站架構中,負載均衡技術是實現網站架構伸縮性的主要手段之一。所謂"伸縮性",是指可以不斷向集群中添加新的服務器來提升性能、緩解不斷增加的並發用戶訪問壓力。通俗地講,就是一頭牛拉不動時,就用兩頭、三
Hibernate學習筆記2.4(Hibernate核心開發接口和三種狀態)
thread rsa 分享 action let 能力 ima 方法 如果 1.configuration(配置信息管理,產生sessionfactory) sessionfactory管理一系列的連接池 opensession 永遠打開新的,需要手動close get
集合之List中的列表迭代器
List集合特有的迭代器,ListIterator是Iterator是Iterator的子介面 在迭代式,不可以通過集合物件的方法操作集合中的元素 因為會發生ConcurrentModificationException異常 所以,在迭代器時,只能用迭代器的方法操作元素,可是Iterea
冪迭代和逆冪迭代求最大最小特徵值
參考連結 https://wenku.baidu.com/view/ee7ecbeca98271fe910ef9fc.html?from=search 冪迭代演算法: 逆冪迭代演算法: 實際在使用中A可以先進行LU分解 無論是冪迭代,還是逆冪迭代,只能求出最大和最
淺析Android Camera開發中的三個尺寸和三種變形 貢獻一個自適配Picturesize和Previewsiz
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
python 學習筆記(基礎輸入輸出,字串,迴圈,三種陣列)
學習python發現這門語言和其他語言有很多不同之處,比如python的變數不需要要宣告型別,python是解釋性語言所以要注意函式定義的位置,python注重程式碼格式而不注重符號。python方便得陣列元組和強大的內建爬蟲庫。寫的可能不夠詳細不夠好但是主要想通過文章以後看的時候回想知
Java程式設計師從笨鳥到菜鳥之(三十二)大話設計模式(二)設計模式分類和三種工廠模式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!