java中使用枚举器遍历的一个小问题。

比如我定义了v是一个vector对象,然后赋了5个Integer对象0~4。下面是枚举器的使用方法Iteratorit=v.iterator();while(it.has... 比如我定义了v是一个vector对象,然后赋了5个Integer对象 0~4。
下面是枚举器的使用方法
Iterator it=v.iterator();
while(it.hasnext())
{

System.out.println(it.next().toString());
}
输出结果是 0 1 2 3 4
书上说的是 通过while循环判定是否存在下一个值,存在则输出下一个值,否则退出循环。
我的问题是,既然判定当前值存在下一个值之后输出下一个值,那么第一个值按道理应该不会输出啊~~~ 求解~~~~
还有一个java小问题, 我们在定义链表的时候 是这样的
List a=new LinkedList ();
请问 List应该只是一个接口 怎么可以去定义 对象? 即使List是类 那么List 和LinkedList 这2个类应该是不一样的怎么能用等号连接起来呢?
展开
 我来答
百度网友eefaf3700
2011-01-16 · TA获得超过380个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:136万
展开全部
第一个问题:
可以简单点理解为it.hasnext())是判断it迭代器是否还有下一个元素,只是一个判断,而没有将它指向it的下一个元素,当it.next()时才真正的指向下一个元素,也可以把it理解为一个数组让你更容易接受吧..

第二个问题:
//接口 对像变量 = new一个接口的实现类
List a=new LinkedList ();
java.util
接口 List<E>
所有超级接口:
Collection<E>, Iterable<E>
所有已知实现类:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 由JDK可看到:
接口inputStream有很多子接口和实现类
上面的代码体现了编程面向接口的思想,这种思想能降低代码的耦合性,
List a= null;
a = new LinkedList ();
a =new ArrayList;
上面代码可以看出,你定义一个List变量a,就可以用这个变量记录它产生的实现类
4408110qaz
2011-01-16 · TA获得超过362个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:78.6万
展开全部
(1)hasnext()只判断有没有下一个,并不挪动游标;
next()才挪动游标.
同时刚开始游标指在第一个元素之前

(2)java编程的一个重要原则是“面向抽象编程”。List是个接口,LinkedList是个具体类。静态类型尽可能抽象,好处是一旦你不想用LinkedList,而改用ArraList什么的,只要改=new LinkedList ();这块,其他地方不受影响。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longhua828
2011-01-16 · TA获得超过114个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:144万
展开全部
iterator最开始是指向第一个结果之前的
第二个问题需要你补充下面向对象的相关知识,一言两语讲不清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式