Ciao a tutti!!! ho un problema quando invoco un metodo statico!!vi posto il codice e poi spiego cosa dovrebbe fare!!

codice:
import java.util.Random;

import jbook.util.Input;

public class MetodiStatici5 {
	
	public static int [] getPari(int [] a){
		int count=0;
		for(int i=0; i<a.length;i++){
			if(a[i]%2==0){
				count++;
			}
		}
		
		int [] ris= new int [count];
		
		for(int i=0; i<a.length-1; i++){
			if(a[i]%2==0){
				ris[i]=a[i];   // riga 21 ERRORE
			}
			
		}
		return ris;
		
	}
	
	public static int sommaAlterna(int []a){
		int ris=0;
		int [] check=new int [a.length];
		for(int i=0; i<a.length;i++){
			if(i%2==0){
				check[i]=a[i];
			}else{
				check[i]=-a[i];
			}
		}
		
		for(int i=0;i<check.length;i++){
			ris+=check[i];
		}
		return ris;
	}
	
	public static void main (String [] args){
		int n=Input.readInt("inserisci lunghezza array");
		int [] a=new int [n];
		
		Random generatore=new Random(10);
		for(int i=0;i<a.length;i++){
			a[i]=generatore.nextInt(10);
		}
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		
		
		
		
		for(int i=0;i<(getPari(a)).length;i++){  //riga 61  ERRORE
			System.out.print(getPari(a)[i]+" ");
		}
		
		System.out.println(sommaAlterna(a));
	}

}
il metodo getPari() prende come parametro un'array di interi e restituisce un nuovo array composto solo dagli elementi in posizione pari, il metodo sommaAlterna() prende come parametro un'array di interi e restituisce la somma alterna degli elementi dell'array(es:dato l'array [3,6,8,23,4] restiuisce 3-6+8-23+4 = -14)
e nel main si prende in input un numero n e si crea un'array con n numeri interi random utilizzando java.util.Random, e invoco i metodi

l'errore ke mi da eclipse è : Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at provaCompitoLaboratorio.MetodiStatici5.getPari(Met odiStatici5.java:21)
at provaCompitoLaboratorio.MetodiStatici5.main(Metodi Statici5.java:61)

non capisco proprio perchè mi dia questo tipo di errore!!dovrebbe andare tranquillamente!!