Which one is better?
Personally, I like using the first one as I think it is more clear to me, but it is your personal preference and others do think it is redundant.
What is the difference?
There is no difference between the two lines, they mean the same thing in Java 7 (if you are targeting Java 6 use the first one).
[EDIT]:
Also, as Elliott Frisch notes (thanks for the helpful clarification) due to type erasure, there is no way to differentiate between the two code snippets as it removes the generics from both. This works up to JDK 5, when generic types were first introduced.