For example as a java programmer I would have expected that knowing when to utilise a LinkedList over an ArrayList or why you should have an optimal hashing algo when using hashmap to ensure everything is not in a single bucket
I’ve crossed out a bit. It’s irrelevant what language you’re using, but what you’ve just written highlights that you understand the data structures you’re using.
I am struggling to understand why this is the case.
Would you not be pissed off if a colleague had written some code that you have to maintain that use an ArrayList instead of a HashMap?
I doubt the people hiring you really want you to know how you would implement a red black tree. They want you to demonstrate that you know the benefits of storing data in a binary tree, and further they want you to know that binary trees can become unbalanced, worst case resulting in list like performance and self balancing trees resolve these problems, with some small overhead for insertion. If they want you to implement it on paper on the spot then they might be hiring for a long time but I do think a grasp of why these things exist is important.