import java.util.ArrayList;
public class Main { static ArrayList<Canciones> almacenador = new ArrayList<Canciones>();
static ArrayList<Canciones> almacenaBusca = new ArrayList<Canciones>();
public static void main(String[] args) { //Datos almacenados. Datos similares
almacenador.add(new Canciones(1, "nach ser o no ser ", "ruta1", "Un dia en suburbia", 0));
almacenador.add(new Canciones(2, "nach mil ", "ruta2", "Un dia en suburbia", 0));
almacenador.add(new Canciones(3, "nach", "ruta3", "Un dia en suburbia", 0));
BusquedaExhaustiva be = new BusquedaExhaustiva(almacenador);
//Que se busca?. Aqui es donde indicas la cadena obtenida!!!!
be.metodoBusquedaEuxhaustiva("nach mil vidas"); //Busca si hay mas de una coincidencia
if (be.masDeUno()) { //Genera nuevo array con busquedas
almacenaBusca = be.getBuscaFin();
} else { System.out.println("El id de la cancio es: " + be.getId()); }
}
}
public class Canciones { //Variables de instancia
private int song_id;
private String songname;
private String fullpath;
private String albumname;
private int prioridad;
//Constructor
public Canciones(int song_id, String songname, String fullpath, String albumname, int prioridad) { this.song_id = song_id;
this.songname = songname;
this.fullpath = fullpath;
this.albumname = albumname;
this.prioridad = prioridad;
}
//Getters y setters
public int getSong_id() { return song_id;
}
public void setSong_id(int song_id) { this.song_id = song_id;
}
public String getSongname() { return songname;
}
public void setSongname(String songname) { this.songname = songname;
}
public String getFullpath() { return fullpath;
}
public void setFullpath(String fullpath) { this.fullpath = fullpath;
}
public String getAlbumname() { return albumname;
}
public void setAlbumname(String albumname) { this.albumname = albumname;
}
public int getPrioridad() { return prioridad;
}
public void setPrioridad(int prioridad) { this.prioridad = prioridad;
}
@Override
public String toString() { return "Canciones [song_id=" + song_id + ", songname=" + songname + ", fullpath=" + fullpath + ", albumname="
+ albumname + ", prioridad=" + prioridad + "]";
}
}
import java.util.ArrayList;
public class BusquedaExhaustiva { ArrayList<Canciones> busca = new ArrayList<Canciones>();
ArrayList<Canciones> buscaFin = new ArrayList<Canciones>();
ArrayList<Canciones> almacena = new ArrayList<Canciones>();
int masCoincidencia = 0;
int id = 0;
public BusquedaExhaustiva(ArrayList<Canciones> almacena) { super();
this.almacena = almacena;
}
void metodoBusquedaEuxhaustiva(String cadenaEditText) {
// Array donde tiene todas las cancciones de el movil
// Genera array para busqueda
for (int i = 0; i < almacena.size(); i++) { busca.add(new Canciones(almacena.get(i).getSong_id(), almacena.get(i).getSongname(),
almacena.get(i).getFullpath(), almacena.get(i).getAlbumname(), 0));
}
// Prepara la cadena para ser comparada
System.out.println(busca.size());
// Cadena a buscar
String splitCadena[] = cadenaEditText.split(" "); // Augmenta la prioridad con busqueda
for (int i = 0; i < busca.size(); i++) { for (int e = 0; e < splitCadena.length; e++) { if (busca.get(i).getSongname().toLowerCase().contains(splitCadena[e].toLowerCase())) { busca.get(i).setPrioridad(busca.get(i).getPrioridad() + 1);
}
}
}
// Muestra el array
for (Canciones b : busca) { System.out.println(b);
}
// Crear un boleano si lo ha encontrado
boolean hayCoincidencia = false;
// Busca el id con mas coincidencia
masCoincidencia = 0;
for (Canciones b : busca) { if (b.getPrioridad() > masCoincidencia) { id = b.getSong_id();
masCoincidencia = b.getPrioridad();
hayCoincidencia = true;
}
}
// En la busqueda hay mas de 1
boolean repetido = masDeUno();
System.out.println("esta repetido? " + repetido); if(!masDeUno()) { // Si hay concidencia reproducir la concion si no no ahcer nada
System.out.println("El id mas coincidido es: " + id); }
}
//Permite saber si hay mas de uno repetido
boolean masDeUno() { int contador = 0;
for (Canciones b : busca) { if (b.getPrioridad() == masCoincidencia) { contador++;
buscaFin.add(new Canciones(b.getSong_id(), b.getSongname(), b.getFullpath(), b.getAlbumname(), b.getPrioridad()));
System.out.println("Contador: "+busca); }
}
if (contador > 1) { System.out.println("Contador: " + contador); return true;
} else { return false;
}
}
public ArrayList<Canciones> getBuscaFin() { return buscaFin;
}
public void setBuscaFin(ArrayList<Canciones> buscaFin) { this.buscaFin = buscaFin;
}
public int getId() { return id;
}
public void setId(int id) { this.id = id;
}
}
Comentarios sobre la versión: 1 (0)
No hay comentarios