Улучшение производительности retainAll на ArrayList Java 8 - PullRequest
4 голосов
/ 02 апреля 2019

У меня есть две структуры данных (List<ArrayList<String>>), как показано ниже

parentList: [[1, 11], [2, 11], [3, 11], [4, 11]]
childList: [[2, 11], [1, 11], [56], [4, 11], [3, 11], [5, 11], [6], [6]]

Я хочу, чтобы childList сохранил все элементы, присутствующие только в parentList, сохраняя порядок вставки. я, е:

childList: [[2, 11], [1, 11], [4, 11], [3, 11]]

Размер parentList составляет около 500, а childList - около 50K. Я попробовал:

childList.retainAll(parentList);

При увеличении размера childList время, затрачиваемое на retainAll, резко возрастает.

Использование LinkedHashSet повышает производительность по сравнению с List, но не до ожидаемого уровня. Есть ли другой способ выполнить требование, отличное от retainAll, или есть способ оптимизировать ту же операцию?

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