Salve,

il nostro programma deve confrontare dei dati, però quando inseriamo tali dati ci da errori durante il confronto... vi posto i codici:

codice:
do {
		    System.out.println("Inserire correttamente Cognome e Nome o Nominativo *: ");
		    dati[0] = in.nextLine();
	    if (dati[0].equalsIgnoreCase("Q")) {  
			    System.out.println("");
			    return;
		    }
		       } while (dati[0] == null ||  dati[0].length() == 0 || dati[0].equals(" "));
	    do {
		    System.out.println("Luogo di appuntamento: ");
		    dati[1] = in.nextLine();
		    if (dati[1].equalsIgnoreCase("Q")) {
			    System.out.println("");
			    return;
		    }
	    } while (dati[1] == null);
	  
	  
	    do{
		    System.out.println("Inserire la data nel seguemte formato (GG-MM-AAAA): ");
		    dati[2] = in.nextLine();
		if (dati[2].equalsIgnoreCase("Q")) {
			     System.out.println("");
			     return;
		    }
		    } while (dati[2].equals("") || (dati[2].length() != 10) || ! (dati[2].substring(2, 3).equals("-"))
				|| ! (dati[2].substring(5, 6).equals("-")) );
				//verifica dell'esistenza della data
				verifica.data(dati);

	do {
		    System.out.println("Orario di appuntamento (hh:mm): ");
		    dati[3] = in.nextLine();
		    if (dati[3].equalsIgnoreCase("Q")) {
			    System.out.println("");
			    return;
		    }
	    } while (dati[3].equals("") ||  dati[3].length() != 5 || ! (dati[3].substring(2,3).equals(":")));
	    //verifica dell'esistenza dell'ora
	    verifica.ora(dati);
	    //creazione della chiave
	     chiave=dati[2]+dati[3];
	  //inserisco la chiave nell'arraylist
	  dati[5]=chiave;
	  
	do {					      
		    System.out.println("Durata di appuntamento (mm: max 3 cifre): ");
		    dati[4] = in.nextLine();
		    if (dati[4].equalsIgnoreCase("Q")) {
			    System.out.println("");
			    return;
		    }
		    } while (dati[4].equals("") || (dati[4].length() != 3));
		    
		    Appuntamento p=agenda.confronta(dati);
il problema sta proprio qui "Appuntamento p=agenda.confronta(dati);";

Agenda.java (qui invece è il confronto)
codice:
public Appuntamento confronta(String[] dati){
int durata = (Integer.parseInt(dati[4]));
	    numeroAppuntamenti = vAppuntamenti.size();
	    if (numeroAppuntamenti==0){}	    
		    else {
		    
		    int conta_app=0;

	    for (int i = 0; i <= numeroAppuntamenti; i++) {
	      p = vAppuntamenti.get(i);
	     String durata_esistente=p.getDurata();
		 String data_esistente = p.getData();
	      if (dati[2].equalsIgnoreCase(data_esistente)) {
	       String ora_esistente=p.getOrario();
		if (dati[3].equalsIgnoreCase(ora_esistente)){
		    conta_app=conta_app+1;
		}
	       }
				if (conta_app>1)
		     System.out.println("ATTENZIONE!!!!!!!!!! \n in quest'orario hai gia' un appuntamento che inizia alle"+ data_esistente  +"e dura "+durata_esistente);

	    }
   }
   return null;
	   }
Vi posto l'errore:
codice:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    at java.util.ArrayList.get(ArrayList.java:322)
    at Agenda.confronta(Agenda.java:91)
    at InterfacciaAgenda.ins(InterfacciaAgenda.java:93)
    at ApplicazioneAgenda.main(ApplicazioneAgenda.java:45)
Process completed.