將1-100個數字,打亂順序放到集合中,並刪掉奇數。
步驟1:把數字放到集合中,建立集合,注意要泛型。for迴圈是1到100。
步驟2:集合亂序,方法:collections.shuffle(傳入的集合)。 一般帶s的是工具類。 用到collections(帶s)集合工具類中的shuffle(洗牌)方法,其內部是演算法。
注意,shuffle傳入的list1集合,但是後面list1就變化了,即引數發生變化。而這種引數發生變化的,我們稱之此
方法有***。***一般是我們寫**的時候並不是我們想起到的作用,所以,自己設計方法的時候要避免有方
法的***。
步驟3:邊遍歷變刪除。
package com.lianxi1019;
import j**a.util.arraylist;
import j**a.util.collections;
import j**a.util.iterator;
import j**a.util.list;
public class dm01
collections.shuffle(list1);
// 用迭代器遍歷
iteratoriterator1 = list1.iterator();
while (iterator1.hasnext())
}system.out.println("迭代器: " + list1 + " ,和陣列大小: " + list1.size());
// 建立亂序集合list2
listlist2 = new arraylist<>();
for (int i = 1; i <= 100; i++)
collections.shuffle(list2);
// 用迭代器簡化來遍歷
list2.removeif(integer -> integer % 2 == 1);
system.out.println("迭代器簡化: " + list2 + " ,和陣列大小: " + list2.size());
// 建立亂序集合list03
listlist3 = new arraylist<>();
for (int i = 1; i <= 100; i++)
collections.shuffle(list3);
// 用for i 倒著遍歷
for (int i = list3.size() - 1; i > -1; i--)
}system.out.println("fori倒著: " + list3 + " ,和陣列大小: " + list3.size());
}}
如果用list.remove來 邊遍歷邊刪除,會出現「併發修改異常」。
list集合是允許邊遍歷邊刪除的,有兩種做法:
迭代器遍歷刪除,就是上面的做法
for i 迴圈遍歷刪除,但是可能會出現「下標越界異常」,所以應該倒著遍歷。
重點應該是邊遍歷邊刪除。
使用iterator迭代器遍歷 ,會出現這個警告,提示是該迴圈可以用collection.removeif替換 ,也就是說迭代器遍歷可以寫成:list1.removeif(integer -> integer % 2 == 1);而此方法返回的是boolean。
list.remove方法是有過載的,1.按下標刪除;2.按元素刪除。
List集合遍歷刪除元素
j a三種遍歷如何進行list的遍歷刪除 1 for迴圈 常見錯誤寫法 由於下標問題達不到想要效果 for int i 0 i應該改為 倒序操作避免下標問題 int size list.size for int i size 1 i 0 i 2 增強for迴圈 foreach迴圈 常見錯誤 會丟擲c...
遍歷Python列表時安全刪除
今天在做工作時,需要遍歷乙個列表把其中不符合要求的刪除掉 於是想到,在遍歷列表的同時刪除元素會不會引起不安全 然後上網搜了一些材料 在這裡總結一下 例如 a 1,2,3,4,5 for i in a if i 4 a.remove i print a上述程式中,我們本來想刪除列表中不等於4的數字 但...
Python遍歷列表時刪除元素
本文首發於我的個人部落格suixin s blogpython的for迴圈可以遍歷乙個列表,但若需要同時將符合條件的元素刪除時,則會出錯。s 1 2,3 4,1 1 s1 s for i in s1 if i 1 s1.remove i print s1 輸出 2,3,4,1 另一種 s2 s fo...