package pronosticos;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import temporadas.Jornada;
import temporadas.Partido;
import temporadas.Temporada;
public class Pronostico {
/*mapaGordo es un mapa donde se almacena como clave un String que representa el nombre de un equipo,
* y el valor asociado es una lista de objetos del tipo stdLocal, que es una clase que posee 4 atributos,
* 3 enteros que representan el nmero de "1", "x", "2" y un string que representa al equipo visitante.
* Todos poseen metodos observadores y modificadores*/
Map<String, List<stdLocal>>mapaGordo;
public Pronostico (List<Temporada> lt){
Map<String,List<stdLocal>> m=new HashMap<String, List<stdLocal>>();
/*Por cada temporada cogemos cogemos todas las jornadas y por cada jornada todos los partidos*/
for(Temporada t:lt){
for(Jornada j: t.getJor()){//cada temporada tiene una lista de jornadas
for(Partido p: j.getPartidos()){//cada jornada tiene una lista de objetos partido
//List<stdLocal> l= new ArrayList<stdLocal>();
/*obtiene losdatos del partido*/
String casa=p.geteCasa();
String visit=p.geteVisitante();
String result=p.getResultado();
//Si el equipo local no esta en el mapa lo pongo y le aado su lista
if(!m.containsKey(casa)){
//System.out.println("no esta la clave");
List<stdLocal> l= new ArrayList<stdLocal>();
stdLocal loc=new stdLocal(visit,0,0,0);
if(result.equals("1")){
loc.setUno(1);
}
if(result.equals("X")){
loc.setX(1);
}
if(result.equals("2")){
loc.setDos(1);
}
l.add(loc);
m.put(casa,l);
//System.out.println(m.keySet()+" "+m.values());
}else{
//si el equipo esta(Key), seconsulta si el visitante ha aparecido ya(en la lista), y si
//est actualizaremos los resultados
boolean yaesta=false;
//recorre la lista de valores asociados a la clave preguntando por el nombre
for(stdLocal equipo:m.get(casa)){
if (equipo.getEquipoVisit().equals(visit))
yaesta=true;
//System.out.println(equipo.getEquipoVisit()+" "+(visit));
}
if(yaesta){
int indice=0;
for(stdLocal aux:m.get(casa)){
if (!aux.getEquipoVisit().equals(visit))
indice++;
else
break;
}
//int indice= m.get(casa).indexOf(visit);
//System.out.println(indice);
//System.out.println(m.get(casa).size());
stdLocal loc=m.get(casa).get(indice);
if(result.equals("1")){
int uno=loc.getUno()+1;
loc.setUno(uno);
}
if(result.equals("X")){
int equis=loc.getX()+1;
loc.setX(equis);
}
if(result.equals("2")){
int dos=loc.getDos()+1;
loc.setDos(dos);
}
yaesta=false;
//System.out.println("he entrado");
//en caso de que el visitante sea nuevo se aade a la lista y actualiza el map
}else{
stdLocal loc=new stdLocal(visit,0,0,0);
if(result.equals("1")){
loc.setUno(1);
}
if(result.equals("X")){
loc.setX(1);
}
if(result.equals("2")){
loc.setDos(1);
}
m.get(casa).add(loc);
}
}
}
}
}
this.mapaGordo=m;
}
public Map<String, List<stdLocal>> getM() {
return mapaGordo;
}
public void setM(Map<String, List<stdLocal>> m) {
this.mapaGordo = m;
}
}
|