黑马程序员技术交流社区
标题:
遍历ArrayList对象,删除其中所有值为"abc"的字符串元素。一点疑问~
[打印本页]
作者:
Troy123
时间:
2014-8-11 16:50
标题:
遍历ArrayList对象,删除其中所有值为"abc"的字符串元素。一点疑问~
import java.util.*;
public class Test1 {
public static void main(String[] args){
ArrayList<String> aList = new ArrayList<String>();
aList.add("abc");
aList.add("afawef");
aList.add("abc");
//获取迭代器
Iterator<String> it = aList.iterator();
System.out.println(aList.toString());
//用迭代器的hasNext方法遍历
while(it.hasNext()){
//把it.next()地址指向String对象
String str = it.next();
//判断str的值是否与“abc”相同
if(str.equals("abc")){
//若为true,将"abc"的引用从集合中删除
it.remove();
}
}
System.out.println(aList.toString());
}
}
复制代码
我觉得题目的意思是(“abcdefg”) 输出defg啊。如果是这样应该怎么弄呢~
作者:
想做开发
时间:
2014-8-11 16:55
迭代器与几何方法不是不能同时用
作者:
长跑※终点
时间:
2014-8-11 17:26
你这样应该会报错的吧。 it.remove();这句
作者:
Bule丶
时间:
2014-8-11 17:26
不是,删除所有只要有abc内容的数据
作者:
J.twt
时间:
2014-8-11 17:47
#在这里快速回复#delete(int start,int end)你值得拥有
作者:
mr.yang
时间:
2014-8-11 18:06
public class Test1 {
public static void main(String[] args) {
List<String> aList = new ArrayList<String>();
//向aList添加字符串
aList.add("aaa");
aList.add("aba");
aList.add("aca");
aList.add("abc");
//方法一,用for循环的方式,判断集合中的元素是不是等于abc,如果不是就加入到新建的集合中,最后返回新建的集合
List<String> list = removeStr1(aList,"abc");
System.out.println(list);
//方法二,List有一个特殊的迭代器借口(listIterator()),这个接口的特点是
//迭代期间可以删除List中的元素
removeStr2(aList,"abc");
System.out.println(aList);
}
//方法一 -----------------------------------------------------------------------
private static List<String> removeStr1(List<String> aList,String str) {
//用多态的形式创建一个String类型的ArrayList的对象list,来存储不是"abc"的字符串
List<String> list = new ArrayList<String>();
//用for循环遍历整个集合,如果不等于传进来的字符串str,则添加到新的数组list中
for (int i = 0; i < aList.size(); i++) {
//判断是不是等于传进来的字符串str
if(!(aList.get(i).equals(str))){
//向list中添加元素
list.add(aList.get(i));
}
}
return list;
}
//方法二 -----------------------------------------------------------------------
private static void removeStr2(List<String> aList,String str) {
// TODO Auto-generated method stub
//创建一个List集合特有的迭代器(迭代期间可以删除List中的元素)
Iterator<String> it = aList.listIterator();
while(it.hasNext()){
if(it.next().equals(str)){
//如果等于传进来的str,就列表中删除
it.remove();
}
}
}
}
复制代码
作者:
雨来
时间:
2015-12-24 21:22
toArray subString toString() 再转换成集合可以吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2