Přesně jak píše Whoever – máte v tom pěkný hokej. Pro začátek vůbec nemusíte studovat, jak které algoritmy fungují – bude stačit, když si zjistíte, k čemu slouží, co je to třídění, co je řazení, co je vyhledávání, co je metoda „rozděl a panuj“. HashSet sice interně používá třídění, ale je to třídění na základě hashe, takže je to jen interní implementace. Uživatel HashSet používá pro vyhledávání hodnot, řazení hodnot v HashSetu je „náhodné“. K vyhledávání v HashSetu ani ve vyváženém binárním stromu se nepoužívá metoda rozděl a panuj, poněkud tam schází ta fáze „rozděl“. Tvrzení, že LinkedList je rychlejší než ArrayList, také není pravdivé – ono těch několik implementací Listu v Javě není proto, že by jedna byla dobrá a ostatní špatné a neměly by se používat. Ty různé implementace jsou tam proto, že se v různých situacích chovají různě, takže pro některá využití je vhodnější LinkedList a pro některá zase ArrayList.
Nechápu, proč se zkoušení z algoritmů dává do vstupních pohovorů pro programátory, protože drtivá většina programátorů řeší jiné typy úloh a opravdu nepotřebují znát, jak je implementován quicksort nebo ArrayList – ale měli by vědět, jaké jejich charakteristiky jsou důležité a umět si je zjistit, když to budou potřebovat. Ale evidentně takový test odhalí aspoň případy, kdy někdo ani neví, k čemu které datové struktury slouží a jak se používají.