问题已写在程序的注释里了,请帮我解惑!
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();
这里不管怎么样,都是移除第一个元素,所以不需要知道第一个元素是什么
------解决方案--------------------
具体用哪个得看需求 哪个方便用哪个