Java - Como buscar la coincidencia en una lista

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Como buscar la coincidencia en una lista

Publicado por Jorge (6 intervenciones) el 16/05/2019 08:15:35
Hola, estoy tratando de hacer una busqueda en una lista, en lo cual mi objetivo es lo siguiente:
supongamos que en la lista de catalogo hay siguientes peliculas: Titanic, Avengers.
y hago una busqueda con la palabra "ta" en esta lista, y como resultado me retornaria "Titanic" ya que el "ta" coincide con Ti"ta"nic.
Necesito una mano ya que no se como podria cumplir el objetivo. muchas gracias.


1
2
3
4
5
6
7
8
9
10
public Pelicula traerPelicula (String partePelicula)
{
    for(Pelicula p : catalogo) {
        if(catalogo.contains(partePelicula)==true)
        {
            return p;
        }
    }
    return null;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 203
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como buscar la coincidencia en una lista

Publicado por Jose Andres (27 intervenciones) el 16/05/2019 08:42:56
Asi como esta solo retornara la primera coincidencia, tu codigo busca objetos tipo "Pelicula", y no funciona por que buscas un String en la lista. Siendo una lista puedes usar la funcion del filter para obtener todas las coincidencias, algo como esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
ArrayList<Pelicula> Cartelera = new ArrayList<>();
Cartelera.add(new Pelicula("Titanic", "dato", "asd"));
Cartelera.add(new Pelicula("Avengers", "dato", "asd"));
Cartelera.add(new Pelicula("EndGame", "dato", "asd"));
Cartelera.add(new Pelicula("Titanes del pacifico", "dato", "asd"));
 
String Busqueda="ta";
 
ArrayList<Pelicula> RE = (ArrayList<Pelicula>) Cartelera.stream().filter(e -> e.getNombre().contains(Busqueda)).collect(Collectors.toList());
 
RE.forEach(e -> {
    System.out.println(e.getNombre());
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como buscar la coincidencia en una lista

Publicado por Rodrigo (623 intervenciones) el 16/05/2019 11:23:16
En tu programa, en la linea 4, reemplaza catalogo.contains por p.contains
Ello retornara la primera pelicula que calce con lo que buscas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como buscar la coincidencia en una lista

Publicado por Billy Joel (875 intervenciones) el 23/05/2019 00:03:44
Supongo que la variable catalogo es un objeto List<Pelicula>.
Voy asumir que la clase Pelicula tiene una propiedad llamada titulo (getTitulo())
Entonces recorremos la lista catalogo y vamos a devolver una lista de las peliculas que contienen en el titulo el parámetro partePelicula...

1
2
3
4
5
6
7
8
9
public List<Pelicula> buscarPelicula(String partePelicula){
    List<Pelicula> e = new ArrayList();
    for(Pelicula p : catalogo){
        if(p.getTitulo().contains(partePelicula)){
            e.add(p);
        }
    }
    return e;
}

Pero supongamos que queremos buscar la película por titulo. Si el titulo coincide devolverá la película, de otro modo devolverá null
1
2
3
4
5
6
7
8
public Pelicula buscarPeliculaPorTitulo(String titulo){
    for(Pelicula p : catalogo){
        if(p.getTitulo().equals(titulo)){
            return p;
        }
    }
    return null;
}

Espero haber contestado tu duda, sino solo responde.
Saludos!
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar