-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEquipo.java
124 lines (98 loc) · 3.22 KB
/
Equipo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import java.util.ArrayList;
import java.util.Comparator;
public class Equipo {
private String nombreEquipo;
private ArrayList<Ciclista> listaCiclistasEquipo;
private ArrayList<Ciclista> listaAbandonosEquipo;
private ArrayList<Bicicleta> listaBicicletasEquipo;
private Comparator<Ciclista> comparadorCiclista;
private Comparator<Bicicleta> comparadorBicicleta;
public Equipo() {
this.nombreEquipo = "";
this.listaCiclistasEquipo = new ArrayList<>();
this.listaAbandonosEquipo = new ArrayList<>();
this.listaBicicletasEquipo = new ArrayList<>();
}
public Equipo(String nombreEquipo) {;
this.nombreEquipo = nombreEquipo;
this.listaCiclistasEquipo = new ArrayList<>();
this.listaAbandonosEquipo = new ArrayList<>();
this.listaBicicletasEquipo = new ArrayList<>();
}
public Equipo(String nombreEquipo, Comparator<Ciclista> compC, Comparator<Bicicleta> compB) {
this.nombreEquipo = nombreEquipo;
this.listaCiclistasEquipo = new ArrayList<>();
this.listaAbandonosEquipo = new ArrayList<>();
this.listaBicicletasEquipo = new ArrayList<>();
this.comparadorCiclista = compC;
this.comparadorBicicleta = compB;
}
/**
* @return the nombreEquipo
*/
public String getNombreEquipo() {
return nombreEquipo;
}
/**
* @param nombreEquipo the nombreEquipo to set
*/
public void setNombreEquipo(String nombreEquipo) {
this.nombreEquipo = nombreEquipo;
}
public void ordenarCiclistasEquipo() {
this.listaCiclistasEquipo.sort(comparadorCiclista);
}
public void ordenarBicicletasEquipo() {
this.listaBicicletasEquipo.sort(comparadorBicicleta);
}
public double getTiempoTotal() {
double total = 0;
for (Ciclista ciclista : listaCiclistasEquipo) {
total+= ciclista.tiempoTerminadas();
}
return total;
}
public Ciclista enviarCiclista() {
Ciclista ciclista = this.listaCiclistasEquipo.get(0);
Bicicleta bicicleta = this.listaBicicletasEquipo.get(0);
this.listaBicicletasEquipo.remove(0);
ciclista.setBicicletaCiclista(bicicleta);
this.listaCiclistasEquipo.remove(0);
return ciclista;
}
public Bicicleta enviarBicicleta() {
Bicicleta bicicleta = this.listaBicicletasEquipo.get(0);
this.listaBicicletasEquipo.remove(0);
return bicicleta;
}
public boolean hayCiclistas() {
return !this.listaCiclistasEquipo.isEmpty();
}
public void anadirBicicleta(Bicicleta bicicleta) {
this.listaBicicletasEquipo.add(bicicleta);
}
public void anadirCiclista(Ciclista ciclista) {
this.listaCiclistasEquipo.add(ciclista);
}
@Override
public String toString() {
String cad = "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
cad+= "%%% " + this.nombreEquipo + " %%% Media Minutos de Ciclistas sin abandonar "
+ this.getTiempoTotal() + " %%%\n";
return cad;
}
public void mostrarCiclistas() {
for (Ciclista ciclista : listaCiclistasEquipo) {
System.out.println(ciclista);
}
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
}
public double mediaTiempoCiclistas() {
double tiempo = 0, cont = 0;
for (Ciclista ciclista : listaCiclistasEquipo) {
tiempo+= ciclista.mediaTiempo();
cont++;
}
return tiempo/cont;
}
}