![](/img/trans.png)
[英]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.