Java 2 dell'Apogeo e' ottimo (imho)
Quando poi hai fatto con quello puoi passare anche a (sempre Apogeo)
Java 2 Tutto e Oltre (forse va bene anche per iniziare, ma non proprio da zero, almeno una infarinatura di programmazione la devi avere) e poi usare quello caxxuto che si chiama Java 2 Tecniche avanzate di programmazione (bello!)