本文整理匯總了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;
}
示例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());
}
示例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;
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}