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