请教各位了啊 写了个最简单的arraylist测试List<String> test = new ArrayList<String>();
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee");Iterator it = test.iterator();
while (it.hasNext())
{
String tmp = (String)it.next();
System.out.println(tmp);
if(tmp.equals("ddd")) //如果相等需要做处理
{
//........做处理,做完后需要在在list中再添加一个
test.add("fffff");
//需要把原来的ddd删除 这个地方报错啊
it.remove();
test.remove(it.hasNext());
}
}
System.out.println("xxxxxxxxxxx");
Iterator it1 = test.iterator();
while (it1.hasNext())
{
System.out.println(it1.next()); //希望再次输出是 aaa bbb ccc eee ffff
} 怎么用list的循环操作
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee");Iterator it = test.iterator();
while (it.hasNext())
{
String tmp = (String)it.next();
System.out.println(tmp);
if(tmp.equals("ddd")) //如果相等需要做处理
{
//........做处理,做完后需要在在list中再添加一个
test.add("fffff");
//需要把原来的ddd删除 这个地方报错啊
it.remove();
test.remove(it.hasNext());
}
}
System.out.println("xxxxxxxxxxx");
Iterator it1 = test.iterator();
while (it1.hasNext())
{
System.out.println(it1.next()); //希望再次输出是 aaa bbb ccc eee ffff
} 怎么用list的循环操作
既然是ArrayList,用索引遍历可以办到的。
所以要不你增加、删除都使用Iterator或者ListIteraot操作。要不就是你自己遍历
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee"); if(test.contains("ddd")){
test.remove("ddd");
test.add("fffff");
}
System.out.println("xxxxxxxxxxx");
Iterator it1 = test.iterator();
while (it1.hasNext()) {
System.out.println(it1.next()); // 希望再次输出是 aaa bbb ccc eee ffff
}
以上是你要实现的功能
楼上的
if(test.contains("ddd")){
test.remove("ddd");
test.add("fffff");
}
不符合要求 因为要对里面每一个进行处理的
如果不添加这句 没有问题的
显示 aaa bbb ccc ddd eee
然后把ddd删除后显示
aaa bbb ccc eee
List <String> test = new ArrayList <String>();
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee");
for(int i=0;i<test.size();i++){
String tmp = (String)test.get(i);
if(tmp.equals("ddd")){
test.add("fffff");
test.remove(tmp);
}
}
System.out.println(test);
里面有add方法
但是 你增加、删除都只能使用这个ListIterator,否则会报错。
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee"); for (int i = 0; i < test.size(); i++) {
String tmp = test.get(i);
if (tmp.equals("ddd")) {
test.remove(i);
test.add("fffff");
i--;
}
}
System.out.print(test);