java 语言里 遍历 collection 的方式 是怎样?

通常: for (Iterator i = c.iterator(); i.hasNext(); ) i.next().cancel();
简写: for ( T t : c) t.cancel();

问题是 简写 的 for each里面 如何获得 迭代器(Iterator)

当我 : for( Iteratori=c.iterator;i.hasNext();)
我可以获得 当前的 迭代器,于是我可以对 被遍历的 集合(collection) 执行一些操作,比如:增减其中元素:i.remove();

当我 : for( T t :c)
在这种情况下 能获得当前的 迭代器么?如果不能,我如何对 被迭代的集合(c) 执行一些操作呢?

关键字'this' 指向当前 迭代器么(Iterator)
for( T t :c) this.remove();-------------这样合法么?

java 语言里 遍历 collection 的方式:

方法一:使用迭代器进行遍历

Collection<String> c = new HashSet<String>();
c.add("java");        
c.add("cpp");        
c.add("php");
c.add("c#");        
c.add("objective-c");
Iterator<String> it = c.iterator();
while (it.hasNext()) {
    String str = it.next();
    System.out.println(str);
}

方法二:使用for进行遍历

Collection<String> c = new HashSet<String>();
c.add("java");
c.add("cpp");
c.add("php");
c.add("c#");
c.add("objective-c");
for (String str : c) {
    System.out.print(str.toUpperCase() + " ");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-09
我来简单说一下吧,一般有2种方法来遍历collection中的元素,以HashSet为例子
HashSet hs=new HashSet();
hs.add("hello");
hs.add("java");
hs.add(5);
这样一个HashSet你可以用2中方法进行遍历
1种方法:迭代器
Iterator it=hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
这里it.next()方法返回一个Object对象,就是你添加到HashSet中的元素.你可以调用it.remove();删除这个元素

2种方法是用一个for-each循环
for (Object o:hs){
System.out.println(o);
}
这里的o会依次得到hs中的元素

这2种方法都可以用,但是如果你想删除HashSet中的元素,你只能用迭代器本回答被提问者采纳
相似回答