仅从Java列表中选择具有特定属性的元素

时间:2016-07-05 21:29:27

标签: java sorting arraylist

所以假设我有一个列表List<MyObject>和一个MyObject类:

public class MyObject {
    Type t;
}

其中't'是非唯一标识符。如何从列表中选择具有t特定值的所有元素?为了我的目的,我试图返回列表中有多少对象具有t的特定值的计数。

我假设在Java中有一些干净的方法可以在不使用显式循环的情况下执行此操作吗?

2 个答案:

答案 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;
}