【问题标题】:How to return number of object occurrence in a list according to certain parameters JAVA如何根据某些参数JAVA返回列表中对象出现的次数
【发布时间】:2017-06-21 04:46:28
【问题描述】:

我有一个 java 对象列表,我想知道object.certain_attribute = foo 出现的次数。我确实知道Collections.Frequency(),但是这个函数要求我发送完全相同的对象,而我只想获取根据某个属性相似的对象。我有 简单地遍历整个列表并进行比较,但你能用一些更简单的方法指导我吗? 提前致谢

【问题讨论】:

  • 我知道我可以简单地遍历整个列表并进行比较,但我想看看是否有更简单的方法。尽量不要在这里重新发明轮子
  • 想得到相似的对象similar是什么意思
  • 我认为如果符合条件,您最终会数数......
  • 嗯,我可能说错了,是的,不相似,但可以说它是一个几何对象,我想在哪里搜索 object.color = green

标签: java list loops iterator


【解决方案1】:

在这种情况下,您可以使用流并过滤绿色 那些..

例子

List<Integer> x = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 1, 1));
long xFreq = x.stream().filter(t -> t % 2 == 0).count();

在您的情况下,根据类型的颜色是相似的。

long xFreq = x.stream().filter(c -> c.getColor().equals("green")).count();

【讨论】:

  • 只需要列表大小时不需要.collect(Collectors.toList()).size(),只需调用.count()即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2019-08-17
  • 2016-06-13
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
相关资源
最近更新 更多