所以假设我有一个列表List<MyObject>
和一个MyObject类:
public class MyObject {
Type t;
}
其中't'是非唯一标识符。如何从列表中选择具有t特定值的所有元素?为了我的目的,我试图返回列表中有多少对象具有t的特定值的计数。
我假设在Java中有一些干净的方法可以在不使用显式循环的情况下执行此操作吗?
答案 0 :(得分:3)
Streams是你的朋友:
List<MyObject> list = ...;
long count = list.stream().filter(e -> e.getT().equals(<specific value>)).count();
您当然需要一种访问t
的方法,此处我以getT()
为例。
答案 1 :(得分:0)
如果您不想使用Java 8,请使用以下简单迭代:
int count(List<MyObject> list, Type x) {
int cnt = 0;
for(MyObject obj: list) {
if(obj.getT() == x) cnt++;
}
return cnt;
}