src/DataStructure/Utility.java
public static float tempoInterventiPerSquadra(int[] listaInterventi,String idSquadra){
		float durataSpostamenti=0;
		float durataInterventi=0;
		float durataGiornataTotale=0;
		
		String idImpiantoAttuale = idSedediPartenza;
		String idImpiantoSuccessivo;
		
		//Calcolo la distanza totale per visitare tutti gli impianti della lista di interventi
		for(int i=0;i<listaInterventi.length;i++){
			//CONTROLLARE QUESTA ISTRUZIONE
			int indice = listaInterventi[i]-1; //Controllare
					
			idImpiantoSuccessivo = interventi.get(indice).getIdImpianto();
					
			if(! (idImpiantoAttuale.equals(idImpiantoSuccessivo)) ){
				//AGGIORNO IL TEMPO TOTALE DEGLI SPOSTAMENTI
				durataSpostamenti+=getDurataSpostamentiImpinatiHash(idImpiantoAttuale, idImpiantoSuccessivo);
						
				//AGGIORNO IL TEMPO TOTALE DI INTERVENTI
				durataInterventi+=interventi.get(indice).getDurata();
					
				//IMPOSTO AGGIORNO L'IMPIANTO ATTUALE
				idImpiantoAttuale = idImpiantoSuccessivo;
			}
			else{
				durataInterventi+=interventi.get(indice).getDurata();
			}
					
		}
		//AGGIUNGO ALLA DISTANZA PERCORSA E AL TEMPO DI SPOSTAMENTO IL RITORNO ALLA SEDE DI PARTENZA
		//SE NON SONO GIA' NELLA SEDE DI PARTENZA
		if(! (idImpiantoAttuale.equals(idSedediPartenza)) ){
			
			durataSpostamenti+=getDurataSpostamentiImpinatiHash(idImpiantoAttuale, idSedediPartenza);
			
		}
				
		//RICAVO  I MINUTI PER ESEGUIRE INTERVENTI E SPOSTAMENTI
		
		durataGiornataTotale = durataSpostamenti + durataInterventi;
				
		return durataGiornataTotale;
	}
/**
	 * Metodo per la determinazione del tempo CONSIDERANDO l'ordine di esecuzione di una lista di interventi 
	 * affidati a una squadra
	 * 
	 * @param listaInterventi array di interi rappresentati gli id degli interventi
	 * @param idSquadra String rappresentante l'id della squadra
	 * @return tempo di esecuzione
	 */
Metodo per la determinazione del tempo CONSIDERANDO l'ordine di esecuzione di una lista di interventi
affidati a una squadra

@param listaInterventi array di interi rappresentati gli id degli interventi
@param idSquadra String rappresentante l'id della squadra
@return tempo di esecuzione
Metodo per la determinazione del tempo CONSIDERANDO l ' ordine di esecuzione di una lista di interventi affidati a una squadra @param listaInterventi array di interi rappresentati gli id degli interventi @param idSquadra String rappresentante l ' id della squadra @return tempo di esecuzione
public static float tempoInterventiPerSquadra(int[] listaInterventi,String idSquadra){
		float durataSpostamenti=0;
		float durataInterventi=0;
		float durataGiornataTotale=0;
		String idImpiantoAttuale = idSedediPartenza;
		String idImpiantoSuccessivo;
		for(int i=0;i<listaInterventi.length;i++){
			int indice = listaInterventi[i]-1; 
			idImpiantoSuccessivo = interventi.get(indice).getIdImpianto();
			if(! (idImpiantoAttuale.equals(idImpiantoSuccessivo)) ){
				durataSpostamenti+=getDurataSpostamentiImpinatiHash(idImpiantoAttuale, idImpiantoSuccessivo);
				durataInterventi+=interventi.get(indice).getDurata();
				idImpiantoAttuale = idImpiantoSuccessivo;
			}
			else{
				durataInterventi+=interventi.get(indice).getDurata();
			}
		}
		if(! (idImpiantoAttuale.equals(idSedediPartenza)) ){
			durataSpostamenti+=getDurataSpostamentiImpinatiHash(idImpiantoAttuale, idSedediPartenza);
		}
		durataGiornataTotale = durataSpostamenti + durataInterventi;
		return durataGiornataTotale;
	}
public static float tempoInterventiPerSquadra ( int [ ] listaInterventi , String idSquadra ) { float durataSpostamenti = 0 ; float durataInterventi = 0 ; float durataGiornataTotale = 0 ; String idImpiantoAttuale = idSedediPartenza ; String idImpiantoSuccessivo ; for ( int i = 0 ; i < listaInterventi . length ; i ++ ) { int indice = listaInterventi [ i ] - 1 ; idImpiantoSuccessivo = interventi . get ( indice ) . getIdImpianto ( ) ; if ( ! ( idImpiantoAttuale . equals ( idImpiantoSuccessivo ) ) ) { durataSpostamenti += getDurataSpostamentiImpinatiHash ( idImpiantoAttuale , idImpiantoSuccessivo ) ; durataInterventi += interventi . get ( indice ) . getDurata ( ) ; idImpiantoAttuale = idImpiantoSuccessivo ; } else { durataInterventi += interventi . get ( indice ) . getDurata ( ) ; } } if ( ! ( idImpiantoAttuale . equals ( idSedediPartenza ) ) ) { durataSpostamenti += getDurataSpostamentiImpinatiHash ( idImpiantoAttuale , idSedediPartenza ) ; } durataGiornataTotale = durataSpostamenti + durataInterventi ; return durataGiornataTotale ; }
Metodo per la determinazione del tempo CONSIDERANDO l'ordine di esecuzione di una lista di interventi
 affidati a una squadra
Metodo per la determinazione del tempo CONSIDERANDO l ' ordine di esecuzione di una lista di interventi affidati a una squadra
//Calcolo la distanza totale per visitare tutti gli impianti della lista di interventi //CONTROLLARE QUESTA ISTRUZIONE //Controllare //AGGIORNO IL TEMPO TOTALE DEGLI SPOSTAMENTI //AGGIORNO IL TEMPO TOTALE DI INTERVENTI //IMPOSTO AGGIORNO L'IMPIANTO ATTUALE //AGGIUNGO ALLA DISTANZA PERCORSA E AL TEMPO DI SPOSTAMENTO IL RITORNO ALLA SEDE DI PARTENZA //SE NON SONO GIA' NELLA SEDE DI PARTENZA //RICAVO  I MINUTI PER ESEGUIRE INTERVENTI E SPOSTAMENTI