个人对List接口中的iterator方法的使用了解
2009-03-29 00:03
330 查看
说来实在惭愧,做web已经有一年左右,对迭代器的了解却是略知一二。记得以前老师讲的时候,对这种东西不会去苛意得记下来,包括所有的关于基础方面的东西,尤其是IO流方面,那我对他的认识就是完全混乱的理解。对于初学程序语言来讲,我想谁也不会去把所有的基础弄到非常的深入(这只是我的个人看法),只是用到的时候才会去亲身的领悟他。
好了,来说一下我在这次程序中遇到的问题。我要写一个程序,有两个表,找出在老表中的数据是在新表中没有的。这个实现非常简单,只是做个比较即可。
程序如下:
而对于在之前使用的则是通过for去遍历的List的值,但是每次在remove一个元素之后,第二个元素会跳到一个元素的位置,这样一来,做出的操作肯定是不对的。最后询问别人,才知道是需要使用Iterator,第一次使用的时候,本代码中的Iterator二次赋值是没有进行的,当时查出的是空值,后来明白了当使用Iterator后,游标会到达栈底,需要重新再赋一次值才可以遍历。就是这么简单。
在这里说明一下,这只是我个人对这块的一个理解描述,希望可以帮到一些初级者。如果有的朋友看到,觉得这些东西非常简单,不用这么苛意的去描述,就当你什么都没看到。
好了,来说一下我在这次程序中遇到的问题。我要写一个程序,有两个表,找出在老表中的数据是在新表中没有的。这个实现非常简单,只是做个比较即可。
程序如下:
Query query = session.createQuery("select menu,url from SysMenu2 where url != ''"); //老菜单集合 List<String> oldList = query.list(); //从数据库中得到的所有菜单url Query query1 = session.createQuery("select menu,url from SysMenu where url != ''"); //新菜单集合 List newList = query1.list(); //从数据库中得到的所有菜单url Iterator it = oldList.iterator(); while(it.hasNext()){ if(newList.contains(it.next())){ it.remove(); } } Iterator its = oldList.iterator(); while(its.hasNext()) { System.out.println((String)its.next()); }
而对于在之前使用的则是通过for去遍历的List的值,但是每次在remove一个元素之后,第二个元素会跳到一个元素的位置,这样一来,做出的操作肯定是不对的。最后询问别人,才知道是需要使用Iterator,第一次使用的时候,本代码中的Iterator二次赋值是没有进行的,当时查出的是空值,后来明白了当使用Iterator后,游标会到达栈底,需要重新再赋一次值才可以遍历。就是这么简单。
在这里说明一下,这只是我个人对这块的一个理解描述,希望可以帮到一些初级者。如果有的朋友看到,觉得这些东西非常简单,不用这么苛意的去描述,就当你什么都没看到。
相关文章推荐
- 黑马程序员---集合体系的继承关系图。顶层接口Collection中的方法,迭代器Iterator使用和原理,List派系特点
- Iterator 接口的使用 所有的Collection接口类都有一个iterator方法 ,Iterator对象的删除
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- Iterator 接口的使用 所有的Collection接口类都有一个iterator方法
- map集合的4种遍历方法和List集合的2种遍历和迭代器Iterator的使用
- java.util.List接口的方法subList()的使用注意事项
- [原创]Java中使用File类的list方法获取一定数量的文件:FilenameFilter接口的特殊用法
- 黑马程序员--08.泛型--02.【泛型方法】【泛型接口】【泛型限定的基本使用】【个人总结】
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- Java中vector的使用详解、enumeration枚举接口的和iterator的区别、vector与list的对比
- java.util.List接口的方法subList()的使用注意事项
- Iterator 循环 List 使用remove方法报错的分析与解决办法。
- java.util.List接口的方法subList()的使用注意事项
- java.util.List接口的方法subList()的使用注意事项
- 为什么我们要尽可能使用Iterator接口中的remove方法而不是用Collection接口中的remove方法
- java.util.List接口的方法subList()的使用注意事项
- java使用Iterator迭代出现"java.uitl.ConcurrentModificationException"错误原因及解决方法概述
- Delphi中Interface接口的使用方法
- seajs的使用方法个人总结