黑马程序员技术交流社区
标题:
集合疑问
[打印本页]
作者:
陈永波
时间:
2012-7-1 22:06
标题:
集合疑问
本帖最后由 陈永波 于 2012-7-2 14:06 编辑
由于arraylist 的元素删除元素后长度变小了,元素的索引也会跟着改变,
但是迭代的下标没有跟着相应的改变。请问怎么处理在ArrayList中删除所有不等于指定值的元素?
作者:
Forever。
时间:
2012-7-1 22:08
本帖最后由 Forever。 于 2012-7-1 22:47 编辑
楼主试试我的方法:
可以实现功能
public ArrayList<String> arrHandle(ArrayList<String> list,String deletStr)
{
//新建一个将来要返回的list
ArrayList<String> blist = new ArrayList<String>();
//遍历传进来的list
for(int i = 0 ; i < list.size() ; i ++ )
{
//得到的元素
String str = list.get(i);
StringBuilder sb = new StringBuilder(str);
//判断得到的元素是否含有deletStr,如果有就删除
if(str.contains(”abc“))
{
//将得到的每个元素拆分成char数组然后去挨个对比其中的元素
char[] c = str.toCharArray();
for(int j = 0 ; j < c.length-2 ; j ++)
{
if(c[j]=='a'&&c[j+1]=='b'&&c[j+2]=='c')
{
sb.delete(j, j+2);
在这里把你想删掉的东西删了我这里是字符串abc
}
}
}
//最后将重新组合的元素添加到blist中
blist.add(sb.toString());
}
return blist;
}
作者:
车风波
时间:
2012-7-1 22:18
iterator()可以remove()啊 。没看明白什么意思。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2