當前位置: 首頁>>代碼示例>>Java>>正文


Java PriorityBlockingQueue.iterator方法代碼示例

本文整理匯總了Java中java.util.concurrent.PriorityBlockingQueue.iterator方法的典型用法代碼示例。如果您正苦於以下問題:Java PriorityBlockingQueue.iterator方法的具體用法?Java PriorityBlockingQueue.iterator怎麽用?Java PriorityBlockingQueue.iterator使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.util.concurrent.PriorityBlockingQueue的用法示例。


在下文中一共展示了PriorityBlockingQueue.iterator方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: calculaCosteAtencionVictimasFinalesAsignadas

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
public double calculaCosteAtencionVictimasFinalesAsignadas(double factorMultiplicativo, VictimsToRescue victims2R, MisObjetivos misObjs){

		double tiempo = 0;     //Variable para calcular el tiempo

    	PriorityBlockingQueue <Objetivo> colaobjetivos = misObjs.getMisObjetivosPriorizados();
    	int tamaniocola = colaobjetivos.size();

    	Iterator<Objetivo> it = colaobjetivos.iterator();

        if (tamaniocola==0){
        	return 0;
        }

    	while (it.hasNext()){
  		  //Hay al menos un objetivo
  	      Objetivo ob = it.next();
  	      String referenciaIdObjetivo = ob.getobjectReferenceId();

	      //Obtener la victima de la cola
	      Victim victimaActualCola = victims2R.getVictimToRescue(referenciaIdObjetivo);    	          	      
	      int prioridadVictimaActualCola = victimaActualCola.getPriority();
	      
	      tiempo = tiempo + (factorMultiplicativo*prioridadVictimaActualCola);
    	}    	    	    	
    	return tiempo;
	}
 
開發者ID:Yarichi,項目名稱:Proyecto-DASI,代碼行數:27,代碼來源:CosteRealizacionObjetivo.java

示例2: testIteratorRemove

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
/**
 * iterator.remove removes current element
 */
public void testIteratorRemove() {
    final PriorityBlockingQueue q = new PriorityBlockingQueue(3);
    q.add(new Integer(2));
    q.add(new Integer(1));
    q.add(new Integer(3));

    Iterator it = q.iterator();
    it.next();
    it.remove();

    it = q.iterator();
    assertEquals(it.next(), new Integer(2));
    assertEquals(it.next(), new Integer(3));
    assertFalse(it.hasNext());
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:19,代碼來源:PriorityBlockingQueueTest.java

示例3: getIdsVictimasFinalesAsignadas

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
private ArrayList getIdsVictimasFinalesAsignadas(MisObjetivos misObjs, VictimsToRescue victims2R){
	ArrayList aux = new ArrayList();

	PriorityBlockingQueue <Objetivo> colaobjetivos = misObjs.getMisObjetivosPriorizados();
	int tamaniocola = colaobjetivos.size();

	Iterator<Objetivo> it = colaobjetivos.iterator();

    if (tamaniocola==0){
    	return aux;
    }
    
	int index = 0;
	while (it.hasNext()){    		
		  //Hay al menos un objetivo
	      Objetivo ob = it.next();
	      String referenciaIdObjetivo = ob.getobjectReferenceId();

         //Obtener la victima de la cola
         Victim victimaActualCola = victims2R.getVictimToRescue(referenciaIdObjetivo);  	          
         String nameVictim = victimaActualCola.getName();
       
         aux.add(index, nameVictim);
         index ++;  	        
	}
	
	return aux;
}
 
開發者ID:Yarichi,項目名稱:Proyecto-DASI,代碼行數:29,代碼來源:FinalizarSimulacionIG.java

示例4: CalculaTiempoAtencion

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
public double CalculaTiempoAtencion(double factorMultiplicativo, Victim nuevaVictima, VictimsToRescue victims2R, MisObjetivos misObjs){

		double tiempo = 0;     //Variable para calcular el tiempo

        //Obtener la prioridad de la victima
        int prioridadNuevaVictima = nuevaVictima.getPriority();
        // si la victima no esta entre las vicitimas a rescatar o en los objetivos
        
    	PriorityBlockingQueue <Objetivo> colaobjetivos = misObjs.getMisObjetivosPriorizados();

    	Iterator<Objetivo> it = colaobjetivos.iterator();
         boolean hayVictimasArescatar = victims2R.getvictims2Rescue().isEmpty();
               
    	while (it.hasNext()&&hayVictimasArescatar){
  		  //Hay al menos un objetivo
  	      Objetivo ob = it.next();
  	      String referenciaIdObjetivo = ob.getobjectReferenceId();
	      //Obtener la victima de la cola
              if (referenciaIdObjetivo !=null){
                    Victim  victimaActualCola = victims2R.getVictimToRescue(referenciaIdObjetivo);
                    if(victimaActualCola !=null){
                        int prioridadVictimaActualCola = victimaActualCola.getPriority();
                        tiempo = tiempo + (factorMultiplicativo*prioridadVictimaActualCola);
                        }
              }
        }
    	tiempo = tiempo + (factorMultiplicativo*prioridadNuevaVictima);
    	return tiempo;
	}
 
開發者ID:Yarichi,項目名稱:Proyecto-DASI,代碼行數:30,代碼來源:Coste.java

示例5: testIterator

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
/**
 * iterator iterates through all elements
 */
public void testIterator() {
    PriorityBlockingQueue q = populatedQueue(SIZE);
    Iterator it = q.iterator();
    int i;
    for (i = 0; it.hasNext(); i++)
        assertTrue(q.contains(it.next()));
    assertEquals(i, SIZE);
    assertIteratorExhausted(it);
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:13,代碼來源:PriorityBlockingQueueTest.java

示例6: CalculaDistanciaCamino

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
public double CalculaDistanciaCamino(String nombreAgenteEmisor, Coordinate posicionActualRobot, Victim nuevaVictima, VictimsToRescue victims2R, MisObjetivos misObjs){

        boolean flag = true;
        double distancia = 0;     //Variable para calcular la distancia para recorrer el camino de las victimas actualmente asignadas, incluyendo la nueva victima actual que ha llegado 

        Coordinate coordinateNuevaVictima = nuevaVictima.getCoordinateVictim();         
        int prioridadNuevaVictima = nuevaVictima.getPriority();
         Objetivo ob;
    	PriorityBlockingQueue <Objetivo> colaobjetivos = misObjs.getMisObjetivosPriorizados();
    	int tamaniocola = colaobjetivos.size();
    	
        Victim victimaAnteriorCola = null;
    	Coordinate coordinateVictimaAnteriorCola = null;
    // Hacer un analisis de casos 
    // Caso 1 Hay un objetivo en la cola de objetivos pero no tiene que ver con hacerse cargo de la victima
    //        victims2R contine la nueva victima que sera la ultima almacenada
    //        El coste debe consistir en el calculo a partir de la distancia      
//        if (tamaniocola == 0 ) return  distanciaC1toC2(posicionActualRobot, coordinateNuevaVictima);
//        else if (tamaniocola == 1){
//         String refVictim = misObjs.getobjetivoMasPrioritario().getobjectReferenceId();
//            if(refVictim == null||(victims2R.getvictims2Rescue().isEmpty() ||
//                                   victims2R.getVictimToRescue(refVictim) == null )
//               ) return distanciaC1toC2(posicionActualRobot, coordinateNuevaVictima);  
//        }
        distancia= distanciaC1toC2(posicionActualRobot, coordinateNuevaVictima);
        if (tamaniocola >1 ) {
            
    	Iterator<Objetivo> it = colaobjetivos.iterator();
                        
        //Mostrar informacion del calculo de la evaluacion en ventana de trazas Evaluacion
    	//trazas.aceptaNuevaTraza(new InfoTraza("Evaluacion", "CALCULANDO DISTANCIA .......... Agente " + nombreAgenteEmisor, InfoTraza.NivelTraza.info)); 
    	int i = 1;
    	while (it.hasNext()){
    		  //Hay al menos un objetivo
    	    ob = it.next();
            if ( ob.getState()!= Objetivo.SOLVED){
    	      String referenciaIdObjetivo = ob.getobjectReferenceId();
    	      //Obtener la victima de la cola
                Victim victimaActualCola = victims2R.getVictimToRescue(referenciaIdObjetivo);    	          	      
                int prioridadVictimaActualCola = victimaActualCola.getPriority();    	          	          	      
                Coordinate coordinateVictimaActualCola = victimaActualCola.getCoordinateVictim();   	          	      
                if (flag == false){
    	    	  //terminar el recorrido por el resto de victimas de la cola
    	    	  distancia = distancia + distanciaC1toC2(coordinateVictimaAnteriorCola, coordinateVictimaActualCola);
                }
                else{     	      
                    if (prioridadVictimaActualCola >= prioridadNuevaVictima){
    	    		  	if (i==1){
    	    	    	   //distancia del robot a la nueva victima
    	    		  		distancia = distanciaC1toC2(posicionActualRobot, coordinateVictimaActualCola);
    	    		  	}
    	    		  	else{
    	    		  		distancia = distancia + distanciaC1toC2(coordinateVictimaAnteriorCola, coordinateVictimaActualCola); 
    	    		  	}
    	    		  	if (i==tamaniocola) 
    	    		  		distancia = distancia + distanciaC1toC2(coordinateVictimaActualCola, coordinateNuevaVictima);
                    }else{ //prioridadVictimaActualCola < prioridadNuevaVictima
     	    		    if (i==1){
    	    			      distancia = distanciaC1toC2(posicionActualRobot, coordinateNuevaVictima);
    	    		    }
    	    		    else {
    	    			  distancia = distancia + distanciaC1toC2(coordinateVictimaAnteriorCola, coordinateNuevaVictima);
    	    		    }
                            distancia = distancia + distanciaC1toC2(coordinateNuevaVictima, coordinateVictimaActualCola);
                            flag = false;
                        }
                    }
                    i = i + 1;
                    victimaAnteriorCola = victimaActualCola;
                    coordinateVictimaAnteriorCola = victimaAnteriorCola.getCoordinateVictim();
            }
    	} //fin del while
        }
    	//trazas.aceptaNuevaTraza(new InfoTraza("Evaluacion", 
    	//		"CalculaDistancia: Agente " + nombreAgenteEmisor + ": Distancia->" + distancia 
    	//		, InfoTraza.NivelTraza.info));       		        		                                                           		        		          		           
    	
    	return distancia;
    }
 
開發者ID:Yarichi,項目名稱:Proyecto-DASI,代碼行數:80,代碼來源:Coste.java

示例7: calculaCosteRecorrerCaminoVictimas

import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
public double calculaCosteRecorrerCaminoVictimas(String nombreAgenteEmisor, Coordinate posicionActualRobot, VictimsToRescue victims2R, MisObjetivos misObjs){    	
    double tiempoCamino = 0;     //Variable para calcular el tiempo para recorrer el camino de las victimas asignadas        
    double tiempoAux = 0;
    
	PriorityBlockingQueue <Objetivo> colaobjetivos = misObjs.getMisObjetivosPriorizados();
	int tamaniocola = colaobjetivos.size();

	Iterator<Objetivo> it = colaobjetivos.iterator();

    if (tamaniocola==0){
    	return 0;
    }
                    
	int i = 1;
	Coordinate coordinateaux = new Coordinate(0.0,0.0,0.0);
	coordinateaux = posicionActualRobot;
	    	
	while (it.hasNext()){
 	  //Hay al menos un objetivo    		
     Objetivo ob = it.next();
     String referenciaIdObjetivo = ob.getobjectReferenceId();

   //Obtener la victima de la cola
   Victim victimaActualCola = victims2R.getVictimToRescue(referenciaIdObjetivo);
   Coordinate coordinateVictimaActualCola = victimaActualCola.getCoordinateVictim();
   if (i==1){
 	  		//distancia del robot a la nueva victima
 	  		tiempoAux = tiempoAux + distanciaC1toC2(coordinateaux, coordinateVictimaActualCola);
 	  		coordinateaux = coordinateVictimaActualCola;
 	  		i=2;
   }
   else{
 		        //distancia de una victima a la siguiente victima a visitar
 		        tiempoAux = tiempoAux + distanciaC1toC2(coordinateaux, coordinateVictimaActualCola);
 		        coordinateaux = coordinateVictimaActualCola;
 		        i++;
   }	      	      
	}        
	System.out.println("Numero de victimas asignadas al robot " + nombreAgenteEmisor + " -> " + (i-1));    	
	tiempoCamino = tiempoAux;    	
	return tiempoCamino;    	
}
 
開發者ID:Yarichi,項目名稱:Proyecto-DASI,代碼行數:43,代碼來源:Coste.java


注:本文中的java.util.concurrent.PriorityBlockingQueue.iterator方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。