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个类应该是不一样的怎么能用等号连接起来呢? 展开
下面是枚举器的使用方法
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个类应该是不一样的怎么能用等号连接起来呢? 展开
展开全部
第一个问题:
可以简单点理解为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,就可以用这个变量记录它产生的实现类
可以简单点理解为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,就可以用这个变量记录它产生的实现类
展开全部
(1)hasnext()只判断有没有下一个,并不挪动游标;
next()才挪动游标.
同时刚开始游标指在第一个元素之前
(2)java编程的一个重要原则是“面向抽象编程”。List是个接口,LinkedList是个具体类。静态类型尽可能抽象,好处是一旦你不想用LinkedList,而改用ArraList什么的,只要改=new LinkedList ();这块,其他地方不受影响。
next()才挪动游标.
同时刚开始游标指在第一个元素之前
(2)java编程的一个重要原则是“面向抽象编程”。List是个接口,LinkedList是个具体类。静态类型尽可能抽象,好处是一旦你不想用LinkedList,而改用ArraList什么的,只要改=new LinkedList ();这块,其他地方不受影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
iterator最开始是指向第一个结果之前的
第二个问题需要你补充下面向对象的相关知识,一言两语讲不清楚
第二个问题需要你补充下面向对象的相关知识,一言两语讲不清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询