【发布时间】:2013-11-28 19:24:27
【问题描述】:
我刚刚开始使用 java 中的列表。我想知道修改列表中每个元素的推荐方法是什么?
我已经能够使用以下两种方法完成它,但它们看起来都相当不雅。有没有更好的方法可以在 java 中完成这项工作?是否推荐以下任何一种方法,或者两者都在同一水平?
//Modifying with foreach
for (String each : list)
{
list.set(list.indexOf(each), each+ " blah");
}
//Modifying with for
for (ListIterator<String> i = list.listIterator(); i.hasNext(); i.next())
{
i.next();
list.set(i.nextIndex()-1, i.previous() + " blah yadda");
}
【问题讨论】:
-
@chrylis:他们并没有在结构上修改它。我相信您通常可以在不使迭代器无效的情况下替换列表中的元素……例如,至少对于 ArrayList。当然,我可能是错的:)
-
@Jon Skeet 我认为这实际上是一个问题,当你为每个人做的时候,你不能改变你正在经历的列表的大小。
-
@Lucas:是的,通常就是这样。当然,这里不是这种情况。
-
当然,我只是在说明一点:)
-
上面的代码能用吗?我认为它的 ConcurrentModificationException。修改负责循环的相同列表..!!
标签: java for-loop arraylist foreach