读书人

这个程序跌代器用与不要的区别在哪里

发布时间: 2013-12-13 00:50:19 作者: rapoo

这个程序跌代器用与不用的区别在哪里?
问题已写在程序的注释里了,请帮我解惑!

import java.util.*;

public class Test
{
public static void main(String [] args)
{
List<String> staff = new LinkedList<String>();
staff.add("abc");
staff.add("efg");
staff.add("opq");
staff.add("rst");

staff.remove("abc");//这一行的作用为什么要用下面三行来实现,就这一行不是更方便吗?

// Iterator<String> it = staff.iterator();
// String first = it.next();
// it.remove();

List<String>students = new LinkedList<String>();
students.add("ooo");
students.add("eee");

staff.addAll(students);
System.out.println(staff);

}
}

[解决办法]
两种方式的效果都是一样的,但是出发点是不同的
第一种方式是根据内容删除数据的,也就是说第一种方式的目的是要删除内容为 abc 的那一条数据
而第二种方式是根据位置来删除数据的,也就是说第二种方式的目的是要删除第一条数据
[解决办法]

staff.remove("abc");

这样写就是不管你这个"abc"string对象在什么位置,移除之。但这需要你知道这个对象的内容是"abc"


// Iterator<String> it = staff.iterator();
// String first = it.next();
// it.remove();

这里不管怎么样,都是移除第一个元素,所以不需要知道第一个元素是什么
[解决办法]
具体用哪个得看需求 哪个方便用哪个

读书人网 >J2SE开发

热点推荐