J'ai la méthode suivante dans un programme de mien qui permet à un utilisateur de saisir un identifiant unique associé à un ordinateur portable dans une arrayliste.
La sortie souhaitée est la suivante: p>
Je suis très proche de la réalisation de cela; Cependant, je ne peux comprendre que comment l'obtenir d'imprimer si elle correspond ou non pour chaque ordinateur portable dans la liste. Ainsi, par exemple, si l'ID saisi par l'utilisateur correspond à l'une des trois ordinateurs portables dans la liste, il imprimera comme suit: P>
Acer prédateur Helios 300 CPU: Intel I7-9750H GPU: NVIDIA GTX1660TI Mémoire: 16 Go : 1234567 p>
ID invalide. P>
ID invalide. P>
Donc, ma question est la suivante: Comment puis-je l'obtenir pour imprimer uniquement le match unique ou "ID invalide" Tout en étant capable de boucler toute la liste pour vérifier un match? Ne vous demandez pas nécessairement que la cuillère me nourrir le correctif, mais au moins aider à me diriger dans la bonne direction ou à aider avec la logique. Je vous remercie d'avance pour toute aide! P>
Ma méthode est la suivante: P>
private static void findLaptop(ArrayList arr) { //Prompt user to input an ID. System.out.println("Input ID: "); System.out.println(); //Scan for user input. Scanner keyboard = new Scanner(System.in); int inputId = keyboard.nextInt(); //Loop through ArrayList and check for a match. for(int i=0; i<arr.size(); i++) { //If entered ID matches, print laptop information. if(inputId == ((Laptops) arr.get(i)).getId()) { System.out.println(((Laptops)arr.get(i)).getModel() + " CPU: " + ((Laptops)arr.get(i)).getCpu() + " GPU: " + ((Laptops)arr.get(i)).getGpu() + " Memory: " + ((Laptops)arr.get(i)).getMemory() + "GB ID: " + ((Laptops)arr.get(i)).getId()); } //If entered ID does not match, print invalid ID. else if(inputId != ((Laptops) arr.get(i)).getId()) { System.out.println("Invalid ID."); } } }
3 Réponses :
Vous pouvez le faire à l'aide d'une instruction de retour utilisé après l'impression d'un match em> édition forte> p> p> Si vous avez vous si vous un ArrayList CODE> Configurez correctement en tant que
ArrayList
foreach code> La boucle serait encore plus propre p>
Corrigez-moi si je me trompe, mais cette impression "ID invalide". Chaque fois que la méthode est appelée, quel que soit le cas s'il y avait une correspondance ou non? De plus, je peux dire à mon arraylist
Non, parce que vous êtes retourner code> à partir de cette méthode après avoir imprimé le match
J'ai compris. Merci, votre solution le plus certainement fonctionnerait!
@Brandonbischoff a écrit aussi, je peux dire à mon arraylist ArrayList
Je l'ai relu et je suppose que je ne comprends tout simplement pas. Je fais ma liste configurée en tant que ArrayList
Changez votre méthode sur Statique Statique Findlaptop (ArrayList
Informations superest utiles qui aideront certainement à la nettoyer. Merci beaucoup!
Utilisez ci-dessous Code:
//Create a boolean boolean found= false; for(int i=0; i<arr.size(); i++) { //If entered ID matches, print laptop information. if(inputId == ((Laptops) arr.get(i)).getId()) { System.out.println(((Laptops)arr.get(i)).getModel() + " CPU: " + ((Laptops)arr.get(i)).getCpu() + " GPU: " + ((Laptops)arr.get(i)).getGpu() + " Memory: " + ((Laptops)arr.get(i)).getMemory() + "GB ID: " + ((Laptops)arr.get(i)).getId()); //set boolean true and break found = true; break; } } //Out side the look check If entered ID does not match, print invalid ID. if(!found) { System.out.println("Invalid ID."); }
supposant que vous avez une classe appelée Vous pouvez trouver des correspondances avec un identifiant code> code> à l'aide de java 8 flux: p> la variable ordinateur portable code> comme suit:
résultat code> est un
en option
ordinateur portable code> valeur. Vous pouvez consommer ce résultat comme suit: p>
En dehors de votre boucle - Créez une variable de type ordinateur portable et définissez-la sur NULL. Dans la boucle, si vous trouvez une correspondance, attribuez-la à la variable. Après la boucle, vérifiez si la variable est NULL - si oui, imprimez "ID invalide", sinon imprimez les détails de l'ordinateur portable à partir de la variable. est-ce que cela aide?
@Riaannel Cela aide énormément. Je pense que c'est la route que je vais utiliser pour atteindre ce que je veux. Je me luttais avec elle et vous l'avez présenté de manière très facile à comprendre tout en le laissant pour moi. Ne peut pas vous remercier assez.
Vous pouvez rompre de la boucle en utilisant un mot-clé pause s'il y a une correspondance. A également avoir une variable en dehors de la boucle qui stocke l'ordinateur portable correspondant. Déplacez SOP en dehors de la boucle.