1、不能对Iterator<E>使用for-each循环
好吧,其实我早就知道了。我也不是第一个抱怨这问题的,而且我肯定不是最后一个。
这真是太可恶了!我只想发一帖来解一下气……
Java 5新增加的for-each循环只能对Iterable<E>或者数组使用。注意了,数组并不是Iterable<E>,它是作为特例来实现的。所以别说不能拿Iterator<E>来做for-each,要是想把数组作为参数传递给一个接受Iterable<E>的方法,还非得用java.util.Arrays.asList()来包装一下。
啊啊太不爽了。
可恶,现在在写的一个程序,别人已经写好的部分有几个方法返回Iterator<E>过来,我真宁可它返回过来的是容器本身……那样至少我还能用for-each;至少返回个Collection<E>也好,这个接口也继承自Iterable<E>啊……郁闷。
……我要把那方法的signature改掉。回头被投诉了的话再说……=_=||||
这真是太可恶了!我只想发一帖来解一下气……
Java 5新增加的for-each循环只能对Iterable<E>或者数组使用。注意了,数组并不是Iterable<E>,它是作为特例来实现的。所以别说不能拿Iterator<E>来做for-each,要是想把数组作为参数传递给一个接受Iterable<E>的方法,还非得用java.util.Arrays.asList()来包装一下。
啊啊太不爽了。
可恶,现在在写的一个程序,别人已经写好的部分有几个方法返回Iterator<E>过来,我真宁可它返回过来的是容器本身……那样至少我还能用for-each;至少返回个Collection<E>也好,这个接口也继承自Iterable<E>啊……郁闷。
……我要把那方法的signature改掉。回头被投诉了的话再说……=_=||||
参考:http://rednaxelafx.iteye.com/blog/180966
2、降序循环总是比升序循环快?
参考:http://rednaxelafx.iteye.com/blog/545876