Сначала сгруппируйте свойства по городам, чтобы вы могли объединить счетчики:
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");
}
}
При использовании веб-страницы Google, чтобы сделать поиски, в то время как Вы зарегистрированы в Gmail или другие Сервисы Google, это использует информацию о Вашей истории просмотра для изменения результатов. Это не может сделать этого с API, так как это предполагает выполнение его для кого-то другого, чем себя.
Кроме того, как @Walden упомянутый в его ответе, можно поражать различные серверы для двух запросов, и Google делает "медленную синхронизацию" между серверами, таким образом, у них не могло бы все быть последней поисковой базы данных или последней версии кода рейтинга страницы.
Одной причиной могли быть различные местные жители Google. Запросы Google.com предлагают различные результаты, чем Google.de для того же ключевого слова.
Ваш веб-поиск Google может возвратить различные результаты, чем мой веб-поиск Google того же запроса. Google постоянно обновляет свои поисковые стандартные программы и часто будет развертывать обновления в разное время в различных дата-центрах так каждый дата-центр, и даже каждый кластер в дата-центре может возвратить различные результаты.
Поэтому результаты API, вероятно, прибывают из другой кодовой базы (версия кодовой базы), чем Ваш веб-запрос.