如何查看变量出现在ArrayList中的次数

时间:2019-03-28 00:56:01

标签: java arrays arraylist

我有一个属性的arrayList,我需要查看一个城市中的属性是否出现4000次以上,如果可以,则为按钮上色。

 for(AirbnbListing abnb : List){
        for(Button btn : arr) {     
            if(btn.getText().equals(abnb.getCity())) {                    
                btn.setStyle("-fx-background-color: #FF4500");                  
            }
        }
    } 

一旦我的按钮等于城市名,我希望它检查它有4000个属性,但是我不确定如何执行此操作。有人可以帮我吗?

我可以做类似的事情吗?

  if(btn.getText().equals(abnb.getCity()) && abnb.getCity().size() > 4000)

1 个答案:

答案 0 :(得分:1)

首先按城市对属性进行分组,以便可以汇总计数:

Map<String, Long> counts = List.stream().collect(
        Collectors.groupingBy(AirbnbListing::getCity, Collectors.counting()));

然后只需遍历按钮并从地图中查找计数:

for (Button btn : arr) {
    if (counts.getOrDefault(btn.getText(), 0L) > 4000) {
        btn.setStyle("-fx-background-color: #FF4500");
    }
}