Про big-O хотя бы на wiki смысл почитай, включая англоязычную wiki. Это оценка зависимости скорости алгоритма от входных данных, например о количества сортируемых элементов, в условных попугаях. Функция этой зависимости показывает, как будет замедляться алгоритм в зависимости от роста количества входных данных.
По отдельным стандартным структурам и алгоритмам полно и шпаргалок и полных разъяснений, даже видео. Применительно к Java отдельно есть разъяснения что где используется, дока АПИ, статьи.
Вводно по структурами алгоритмам рекомендую изучить Android приложение "Алгоритмы" - там в анимированном виде детально изложены основные структуры и алгоритмы, станет намного проще ориетироваться.
Есть интерактивная изуализация эталонной работы структур данных.
Подойдет для иллюстрации описания раьоты структур.
https://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlИ еще одна ссылка есть, похожая. Из отличий, тут есть Skip List, который используется в Java, в мощных неблокирующих коллекциях ConcurrentSkipListSet (неблокирующий аналог TreeSet), ConcurrentSkipListMap (неблокирующий аналог TreeMap).
https://people.ok.ubc.ca/ylucet/DS/Algorithms.html