黑马程序员技术交流社区
标题:
循环判断集合中是否包含"def"字符串,包含就删除(正序遍历....
[打印本页]
作者:
佟复生
时间:
2017-8-5 22:30
标题:
循环判断集合中是否包含"def"字符串,包含就删除(正序遍历....
package com.itheima01;
import java.util.ArrayList;
public class MyHomeWorkDay09_2 {
//输出集合
public static void sysArrayList(ArrayList<String> arr) {
for(int i = 0;i < arr.size();i++) {
String s = new String();
s = arr.get(i);
System.out.print(s + " ");
}
}
//删除集合中的所有字符串"def"(思路:循环判断集合中是否包含"def"字符串,包含就删除)
public static void removeArrayList(ArrayList<String> arr,String str) { //正序遍历
/* for(int i = 0;i < arr.size();i++) {
String s = new String();
s = arr.get(i);
if(s.equals(str)) {
arr.remove(i);
}
}*/
//倒序遍历
for(int i = arr.size()-1;i >= 0;i--) {
String s = new String();
s = arr.get(i);
if(s.equals(str)) {
arr.remove(i);
}
}
}
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<String>();
arr.add("abc");
arr.add("def");
arr.add("efg");
arr.add("def");
arr.add("qwe");
arr.add("def");
arr.add("def");
arr.add("def");
arr.add("swd");
arr.add("qwe");
arr.add("wwe");
arr.add("def");
arr.add("def");
sysArrayList(arr);
System.out.println();
removeArrayList(arr,"def");
sysArrayList(arr);
}
}
正序遍历结果:
abc def efg def qwe def def def swd qwe wwe def def
abc efg qwe def swd qwe wwe def
发现没有完全删除集合中的字符串def,原因是每次删除一个字符串后边的字符串会自动向前补上已删除的,所以导致有没删除的。
倒序遍历后结果正确:
abc def efg def qwe def def def swd qwe wwe def def
abc efg qwe swd qwe wwe
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2