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

通常:for(Iteratori=c.iterator();i.hasNext();)i.next().cancel();简写:for(Tt:c)t.cancel();问... 通常: 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();-------------这样合法么?
展开
 我来答
大雁南飞
推荐于2017-09-29 · 知道合伙人互联网行家
大雁南飞
知道合伙人互联网行家
采纳数:1660 获赞数:26106
编码爱好者

向TA提问 私信TA
展开全部

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() + " ");
}
cyq1857
推荐于2017-09-09 · TA获得超过818个赞
知道小有建树答主
回答量:583
采纳率:0%
帮助的人:305万
展开全部
我来简单说一下吧,一般有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中的元素,你只能用迭代器
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式