Guarda la prima riga del metodo "filtra()":


codice:
int dimvett=0; int[]vett=new int[dimvett];

In pratica, stai creando un array (vett) di 0 elementi... un array di 0 elementi non può, ovviamente, contenere alcun elemento... quindi alla riga 19 quando fai:


codice:
vett[dimvett] = cont1;

stai "sforando" l'array... che, ripeto, non può contenere nessun elemento (quindi, nemmeno l'elemento in posizione 0).

Devi rivedere (almeno) l'istanziazione di quell'array. Tutto il resto del codice non l'ho guardato.


PS: ArrayIndexOutOfBoundsException è un'eccezione piuttosto comune: significa sempre che stai sforando un array (o per un indice troppo grande o per un indice troppo piccolo), quindi è "facile" capire cosa cercare.


Ciao.