Java基礎知識複習(九) -- 刪除ArrayList中的資料
阿新 • • 發佈:2019-01-02
首先初始化一個Hero集合,裡面放100個String物件,名稱分別是從
str 0
str 1
str 2
…
str 99.
通過遍歷的手段,刪除掉名字編號是8的倍數的物件
若最簡單的使用位置查詢的方式來刪除對應物件會發現,若每次查詢並刪除,後面的物件會自動前移
參考程式碼1
package review5;
import java.util.ArrayList;
public class Remove {
public static void main(String[] args) {
ArrayList<String> str = new ArrayList<>();
for(int i = 0; i < 100; i++) {
str.add("str "+i);
}
System.out.println(str);
//刪除掉名字編號是8的倍數的物件
for(int i = 0; i < str.size(); i++) {
if(i % 7 == 0) {
System.out.print(str.get(i)+" ");
str.remove(i);
}
}
str.add(0, "str "+0);
System.out. println();
System.out.println(str);
}
}
參考程式碼2
package review5;
import java.util.ArrayList;
public class Remove {
public static void main(String[] args) {
ArrayList<String> str = new ArrayList<>();
for(int i = 0; i < 100; i++) {
str.add("str "+i);
}
System.out.println (str);
//temp用來儲存名字編號是8的倍數的物件
ArrayList<String> temp = new ArrayList<>();
for(String s : str) {
int i = Integer.parseInt(s.substring(4));
if(i % 8 == 0) {
temp.add(str.get(i));
}
}
System.out.println(temp);
// for(String t : temp) {
// str.remove(t);
// }
//刪除str中與temp中相同的所有物件
str.removeAll(temp);
System.out.println(str);
}
}