盘点JDK1.5的新特性(三)——加强for循环
来源:互联网 发布:研究生知行论坛 编辑:程序博客网 时间:2024/05/18 03:39
接着上篇文章来写,其实加强for循环现在用过的人很多,上篇文章中我就已经用到了
public static int add(int i,int... js){ for(int j : js) i += j; return i; }
这里再做一个总结,首先解释一下加强for循环:J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。所谓的加强for循环就是其他语言中的foreach,在java中可以通过这种方式来遍历容器和数组中的数据。
具体的说能够使用加强for循环遍历的可以归纳为两种:
- 数组
- 所有实现了Iterable接口的类,JDK的API中给了下面一个列表
接口 Iterable<T>所有已知子接口: BeanContext, BeanContextServices, BlockingDeque<E>, BlockingQueue<E>, Collection<E>, Deque<E>, List<E>, NavigableSet<E>, Queue<E>, Set<E>, SortedSet<E> 所有已知实现类: AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet, ArrayBlockingQueue, ArrayDeque, ArrayList, AttributeList, BatchUpdateException, BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue, ConcurrentSkipListSet, CopyOnWriteArrayList, CopyOnWriteArraySet, DataTruncation, DelayQueue, EnumSet, HashSet, JobStateReasons, LinkedBlockingDeque, LinkedBlockingQueue, LinkedHashSet, LinkedList, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, RowSetWarning, SerialException, ServiceLoader, SQLClientInfoException, SQLDataException, SQLException, SQLFeatureNotSupportedException, SQLIntegrityConstraintViolationException, SQLInvalidAuthorizationSpecException, SQLNonTransientConnectionException, SQLNonTransientException, SQLRecoverableException, SQLSyntaxErrorException, SQLTimeoutException, SQLTransactionRollbackException, SQLTransientConnectionException, SQLTransientException, SQLWarning, Stack, SyncFactoryException, SynchronousQueue, SyncProviderException, TreeSet, Vector
可以看到常用的Collection,List,Queue,Set接口也都实现了Iterable接口,同理他们的所有子类都可以利用加强for循环来进行遍历,具体例子已经很简单就不多说了,这里要强调的是,加强for循环遍历其实是利用了底层的iterator迭代器,也就是说下面两段代码实际上是一样的List<Integer> list = new ArrayList<Integer>();list.add(1);list.add(2);list.add(3);for(int i : list){ System.out.println(i);}
List<Integer> list = new ArrayList<Integer>();list.add(1);list.add(2);list.add(3);Iterator<Integer> iterator = list.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}
所以在调用加强for循环的时候一定要注意所遍历对象的iterator
- 盘点JDK1.5的新特性(三)——加强for循环
- jdk1.5新特性3之加强for循环
- 盘点JDK1.5的新特性(一)——静态导入功能
- 盘点JDK1.5的新特性(二)——可变参数
- JDK1.5 新特性-增强FOR循环
- JDK1.5新特性-增强for循环
- jdk1.5新特性——循环
- jdk1.5出现的新特性---->增强for循环
- jdk1.5新特性(增强for循环)
- jdk1.5新特性——可变参数、增强for循环、枚举
- 黑马程序员—JDK1.5新特性(增强for循环、可变参数、静态导入)
- 黑马程序员——基础加强(jdk1.5新特性)
- jdk 1.5新特性--for 循环加强
- [Java5新特性]加强For循环
- 【黑马程序员】jdk1.5的新特性------------泛型加强
- Java基础加强-jdk1.5的一些新特性
- JDK1.5新特性5-增强for循环
- 黑马程序员-jdk1.5新特性--For循环增强
- 中文类搜索引擎的网站提交入口列表
- 如何使Android应用程序获取系统权限
- 日志文件过大的问题解决
- web kit 编译小结
- Ubuntu下Rpm安装报错Please use alien to install packages
- 盘点JDK1.5的新特性(三)——加强for循环
- 写给新手程序员的一封信
- Android 在Camera 的 SurfaceView添加控制面板
- 一个即将转走Java之路的人的自白
- 聚簇索引和非聚簇索引介绍
- mac os系统的一些小知识
- UTF-8 GBK UTF8 GB2312 之间的区别和关系
- Silverlight+WCF 新手实例 象棋
- C#窗体程序屏蔽输入法