[英]How to iterate through an ArrayList of Objects of ArrayList of Objects?
[英]How to iterate through one type of objects in arraylist?
我有一些继承树,它的所有子类都保存在一个数组列表中。 所以如果类a, b, c
继承自Foo
类,我有这样的东西:
private List<Foo> arr = new ArrayList<Foo>();
arr.add(new a());
arr.add(new a());
arr.add(new b());
arr.add(new c());
我只想遍历此数组列表中的 a 类对象。 我可以这样做:
for(int i = 0; i < arr.size(); i++) {
if(arr[i] instanceof a) {
// ...
}
}
嗯,这应该可行,但我必须在几个地方编写这段代码……而且在 for 循环中还会有其他几个 if,因此代码会失去很多可读性。
我想知道,有没有更短的方法来做到这一点? 也许只是使用 for 循环?
不,你是对的。 这个:
for(int i = 0; i < arr.size(); i++) {
if(arr[i] instanceof a) {
// ...
}
}
是最好的方法。
你可以写一个自己的名单,从ArrayList中延伸并覆盖从继承的方法Iterable
,并且只显示下一个元素,如果它的实例a
。 然后你的循环看起来像这样:
for(a obj : arr) {
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.