eckes:
you could try the Sphere Online
Judge. It's a site with thousands of programming
problems (many require a fair bit of knowledge of data
structures, algorithms, and discrete mathematics to be
solved). Submit your code and it will be compiled and tested
for correctness. A lot of programming languages are supported,
including Java. I was addicted to that site a while ago (my account).