Более быстрая итерация из 2M записей - PullRequest
0 голосов
/ 28 марта 2019

У меня есть List<Map<String,String>>.и размер списка составляет более 2 млн.У меня есть еще один List<String>, размер которого составляет 100.

В Map у меня есть один ключ, который называется Business Unit.Я хочу хранить только те данные из List<Map<String,String>>, чье имя бизнес-единицы присутствует в List<String>.

. Я хочу использовать потоковый API Java8.Кто-нибудь может подсказать, как этого добиться?

1 Ответ

0 голосов
/ 28 марта 2019

Не знаю, правильно ли я понял ваш вопрос.Вы пробовали таким образом:

@Test
public void testFilter() {
    try {
        List<String> filtered = new ArrayList<String>();
        entities.parallelStream().forEach(entity -> {
            filtered.addAll(filterMap(entity));
        });
        logger.info("Keys {} dimensione {} filtered {} dimensione {}", keys, keys.size(), filtered, filtered.size());
    } catch (Exception e) {
        logger.error("Errore filter ", e);
    }
}
private List<String> filterMap(Map<String, String> entity) {
    return entity.keySet().parallelStream().filter(key -> keys.contains(key)).collect(Collectors.toList());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...