当计数大于或等于;100 Java流
我有以下课程当计数大于或等于;100 Java流,java,java-stream,Java,Java Stream,我有以下课程 private类MaintWindowClass{ 字符串SiteID; 字符串节点; 公共字符串getSiteID(){ 返回站点ID; } 公共字符串getNode(){ 返回节点; } } 一个节点可以有多个站点。我正在尝试获取站点计数>100的节点 有可能通过溪流到达吗。到目前为止我已经试过了 ArrayList maintWindowArray=new ArrayList();//然后在其中添加一些MaintWindowClass。 Map sitesGroupedCo
private类MaintWindowClass{
字符串SiteID;
字符串节点;
公共字符串getSiteID(){
返回站点ID;
}
公共字符串getNode(){
返回节点;
}
}
一个节点可以有多个站点。我正在尝试获取站点计数>100的节点
有可能通过溪流到达吗。到目前为止我已经试过了
ArrayList maintWindowArray=new ArrayList();//然后在其中添加一些MaintWindowClass。
Map sitesGroupedCount=maintWindowArray.stream()
.collect(收集器.groupingBy(MaintWindowClass::getNode、,
Collectors.counting());//更合适的做法是将站点分为节点和其中的站点数。
我现在可以迭代这个映射并获得sitecount>100的节点,但是是否可以使用streams只获得site count大于100的节点 你就快拿到了!
现在,您需要迭代映射并根据值过滤条目:
List<String> nodesWithMoreThan100Sites = maintWindowArray.stream()
.collect(Collectors.groupingBy(MaintWindowClass::getNode, Collectors.counting()))
.entrySet().stream()
.filter(e -> e.getValue() > 100)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
列出超过100个站点的节点=maintWindowArray.stream()
.collect(Collectors.groupingBy(MaintWindowClass::getNode,Collectors.counting())
.entrySet().stream()
.filter(e->e.getValue()>100)
.map(map.Entry::getKey)
.collect(Collectors.toList());
您已经使用了流
s,您只需要进一步迭代或通过另一个流链接到迄今为止收集的地图
的条目。@VishwaRatna请尝试并避免发布这样的评论;他们只会分散对答案的注意力,其他选民应该自己做决定。@Luis Iñesta谢谢,这很有效。第一个流获得计数,然后另一个流获得计数>100。我想知道是否有可能从一个流中获得这个输出