Эффективен ли поиск элементов по пользовательскому атрибуту? - PullRequest
5 голосов
/ 26 июля 2011

Мне интересно, будет ли эффективен такой оператор выбора, как этот:

elements = document.body().select("[data-custom-attr=blahblah]");

Создает ли JSoup карту для всех атрибутов и значений элементов, чтобы она могла их эффективно искать, или это потребует обхода всего документа?

1 Ответ

1 голос
/ 26 февраля 2013

Да, атрибуты хранятся в LinkedHashMap по состоянию на v1.7.2 .

org.jsoup.nodes.Attributes:
line 20: private LinkedHashMap<String, Attribute> attributes = null;
line 21: // linked hash map to preserve insertion order.
line 22: // null be default as so many elements have no attributes -- saves a good chunk of memory

Я был бы упущен, если бы не сказал вам хорошийAPI должен абстрагировать детали реализации от программиста.Подобные детали не должны быть предметом внимания большинства разработчиков.Конечно, никакого вреда не будет, если это ради любопытства.

...