If you are not currently in school or not fresh out of school, chances are you have forgotten some of the less often used data structures and algorithms.
If you would like a refresher, try leetcode.com, where you can do the practice right there and it will judge you and compare your time against other solutions in terms of time. The interface is similar to that I have experienced in a few Coursera courses I’ve taken. You submit your answer via their embedded code editor, and it will test your submission against predefined test cases and let you know the result and the performance (time and sometimes memory).
An all time good read would be Effective Java (old school is cool, still valid). You might event learn things that you’ve never picked up from school and work.