我有python背景,所以請允許我在python中有我的代碼。在Java中類似的Python生成器
在Java(Android)中有一個arrayList<customObject>
。在每個customObject
對應一個布爾值(用於可視性)。
我想要儘可能高效地執行操作來檢查可見性布爾值。在Python中,我會創建一個生成器。
假設我的模式是:
list = [{"item": customObject, "visible": boolean}, {...}, {...}]
visible_matches = [x for x in list if x['visible']]
for match in visible_matches:
dosomething(match)
或替代方案:
list = [[ customObject, boolean], [...], [...]]
visible_matches = [x for x in list if x[1]]
我怎麼會在Java中執行相同?
arrayList<arrayList<boolean,customObject>>
或 arrayList< SimpleEntry<"item",customObject>, SimpleEntry<"visible",boolean> >
看起來非常髒的解決方案給我。有沒有更簡單的方法來實現這一目標?
有沒有在你的Python代碼示例沒有發電機... –
@brunodesthuilliers'[X在列表中移除x如果x [ '看得見']]'是發電機。 – Rainbolt
@John不!這是一個列表理解!在python中,生成器意味着生成器表達式(它是* not * list-comprehensions)或函數生成器(包含'yield'的函數)。 – Bakuriu