我有一个用例,我需要迭代Vector元素并将结果存储在say数组中,只要该实例是类method
这有什么容易的吗?
目前我这样做:
Iterator itr = vec.iterator();
Iterator element = vec.iterator();
while(itr.hasNext())
{
boolean method = itr.next() instanceof Method;
if(method)
System.out.println( "\t" + ( (Method)(element.next()) ).name);
else
element.next();
}
Run Code Online (Sandbox Code Playgroud)
但我认为会有比这更好的方法.
Par*_*ade 20
假设你有一个类Method,那么代码可能是这样的:
List<Method> list = new ArrayList<Method>();
for (Object obj : vector) {
if (obj instanceof Method) {
list.add(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
是不是有人担心没有同步迭代Vector?
如果vector不是线程限制的,在存在另一个修改其内容的线程的情况下,for-each迭代可能会抛出ConcurrentModificationException.