TransWikia.com

¿Cómo hago para comparar dos vectores dentro de un ArrayList?

Stack Overflow en español Asked by qwdas123 on January 21, 2021

Buenos días tengo un problema y es que necesito ingresar un dato (String) y con ese dato hallar todos los vectores dentro del ArrayList que cumplan con el dato(String).

Ejemplo:

En el array esta el (nombre, (Vector: edad))

Ingreso edad 18, entonces quiero que me imprima todos los arrays donde en el vector estén las edad 18.


Este es mi código:

public class Cocina {
public int n;
private Scanner sc;
private Receta receta;   
ArrayList<Receta> recetario = new ArrayList<>();

public Cocina() {
    sc = new Scanner(System.in);
}

public static void main(String[] args) throws IOException{
    Cocina menu = new Cocina();
    menu.desplegarMenu();
}

private void consultarRecetaParticular() {
    System.out.println("Ingrese el ingrediente ");                  //Revisar esto
    String ingredienteBusca = sc.nextLine();
    for (int i = 0; i < recetario.size(); i++) {
        if (recetario.get(i).getIngredientes().equals(ingredienteBusca)) {
            System.out.println(recetario.get(i));
        }
    }


class Receta {
private String ingredientes[];
public String[] getIngredientes() {
    return ingredientes;
}
public void setIngredientes(String[] ingredientes) {
    this.ingredientes = ingredientes;
}

este seria el problema sin preguntar

    private void consultarRecetaParticular() {
    for (int i = 0; i < recetario.size(); i++) {
    if ((recetario.get(i).getIngredientes()).equals(recetario.get(i).getIngredientes()))  {
            System.out.println(recetario.get(i));
        }
  }
    

One Answer

Agrego código con explicación en comentarios.

private void consultarRecetaParticular() {
        System.out.println("Ingrese el ingrediente ");                  //Revisar esto
        String ingredienteBusca = sc.nextLine();

        for (int i = 0; i < recetario.size(); i++) {
            
            boolean contieneIngrediente = false;
            // recorrer cada ingrediente de la lista
            for (String ingrediente : recetario.get(i).getIngredientes()) {
                // se usa equals() para comparar cadenas
                if (ingrediente.equals(ingredienteBusca)) {
                    // si existe en esta lista terminar la iteración
                    contieneIngrediente = true;
                    break;
                }
            }
            // hacer alguna acción con el elemento i del arreglo recetario
            if (contieneIngrediente) {
                // 
            }

        }

    }

Correct answer by Lobos on January 21, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP