0
votes

Comment rechercher un objet dans ArrayList?

Je veux chercher un objet dans une arrayliste en utilisant l'un de l'attribut informatique: nom de chaîne.

J'ai imprimé élément trouvé em> ici, et cela fonctionne simplement bien. P> xxx pré>

Cependant, je veux notifier lorsque l'élément est pas trouvé em> aussi. Lorsque j'ajouterais sinon code> à ceci pour code> boucle, la chaîne code> élémentsArcrh code> est égal (pourrait ne pas être le terme de droite exacte , désolé) avec tous les objets de la flambée et imprime la notification pour chaque index d'objet. P>

Permettez-moi d'expliquer. Supposons, objets em>: livre, stylo et crayon sont stockés dans le tableau itemlist code> dans cet ordre respectif et, la boucle pour code> est modifiée de la manière suivante : P>

                SEARCH ITEMS
Enter item name:
book
                [ITEM FOUND]
                [ITEM NOT FOUND]
                [ITEM NOT FOUND]


1 commentaires

Définissez un booléen, que vous avez défini sur true si l'élément est trouvé. Après la boucle, écrivez un si-ele impliquant le booléen.


4 Réponses :


0
votes

Le moyen le plus simple de le faire est d'imprimer lorsque vous avez trouvé le livre et de retourner. De cette façon, vous allez arrêter itérant une fois le livre trouvé et laissera la fonction immédiatement:

for (Item item: itemList) {
    // do some stuff ...
}


0 commentaires

0
votes

crée la liste et l'élément de recherche: xxx

puis la fonction de contrôle d'élément est xxx

et ça marche pour moi, s'il vous plaît Essayez ceci et laissez-nous savoir :)


0 commentaires

0
votes

Toutes les autres méthodes mentionnées par d'autres utilisateurs semblent bonnes. Juste pour vous exposer à quelque chose de nouveau, voici mes 2 cents. Vous pouvez utiliser API JAVA Stream Pour trouver tout ce qui correspond à votre terme de recherche. Je trouve plus lisible mais c'est ma préférence personnelle.

Item foundItem = itemList
    .stream()
    .filter((item) -> item.name.equalsIgnoreCase(itemSearch))
    .findFirst()
    .orElse(null);
System.out.println(foundItem);


0 commentaires

0
votes

Il existe de nombreuses façons de rechercher un article Donc, après avoir ajouté les éléments à la liste Utilisez une chaîne pour comparer avec l'élément d'origine Donc, si l'élément n'est pas trouvé, une instruction sera imprimée après la fin de la boucle

 System.out.println("Enter an item to search for:");
    String item = sc.nextLine();
    String notFound = null;
    
    for (int i = 0; i < list.size(); i++) {
        boolean check = list.get(i).matches(item);
        if(check){
            System.out.println("item is found.");
            notFound=item;
            break;
        }
    }
    if(notFound == null){
        System.out.println("item not found.");
    }


1 commentaires

Il montre une erreur: "Les correspondances de la méthode (chaîne) sont indéfinies pour l'élément de type Java (67108964)"