首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2013-12-13 
这个程序跌代器用与不用的区别在哪里?问题已写在程序的注释里了,请帮我解惑!import java.util.*public cl

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

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();

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

热点排行