And don't try to write C code in Java.
C and Java have completely different paradigms, C being procedural and Java object oriented.
Java in fact has more similarities with Smalltalk and Delphi than it does with C.
Just about the only things that are similar to C is actually borrowed from C++ (which itself borrows it from C) and that's the block demarcation with braces and the way control structures like loops and conditional clauses are constructed.
Not that I really have a firm grasp on it yet, but the best way for me to pick up the logic and uses of the language is just to start coding and working through the errors I get.
The logic I can usually pick up after a short time, but working through the errors (with the help of the guys out here) helped with my syntax more than anything.
That is what I did. Simple little projects that did only one or two things. After I had a basic understanding of how the classes worked, I then started more complicated (to me) things.
This is where I learned the most. Implimenting arrays, Jlists, GUI and all that. I spent most of my time out here working through my problems, but once on the other side and could look back at how I started, how the problems were solved, and how it all works, I have such a better understanding.
That has always been my process for learning though, yours may be different.