java - 在 ArrayList 中查找匹配项的 Java 方法
问题描述
我的程序中有以下方法,它允许用户在 ArrayList 中输入与笔记本电脑关联的唯一 ID。
所需的输出如下:
- 如果用户输入的 ID 与 ArrayList 中的 ID 匹配,则会打印出笔记本电脑及其规格。
- 如果 ID 不匹配,则会打印出“Invalid ID”。
我非常接近实现这一目标;但是我只能弄清楚如何让它打印它是否与列表中的每台笔记本电脑匹配。例如,如果用户输入的 ID 与列表中三台笔记本电脑中的一台匹配,它将打印如下:
Acer Predator Helios 300 CPU:Intel i7-9750h GPU:NVIDIA GTX1660ti 内存:16GB ID:1234567
无效的身份证件。
无效的身份证件。
所以我的问题是:如何让它只打印单个匹配项或“无效 ID”,同时仍然能够遍历整个列表以检查匹配项?不一定要你用勺子喂我解决问题,但至少帮助我指出正确的方向或帮助逻辑。我提前感谢您的帮助!
我的方法如下:
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.");
}
}
}
解决方案
使用以下代码:
//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.");
}
推荐阅读
- python - 在 django 中使用 Q 并结合 QuerySet
- javascript - 使用 php mysql 查询的结果,在 javascript 中循环使用 ajax 函数
- java - DataProc 上 Spark/Hive 中的意外日志条目
- java - 在 Java 中的本机 postgres 查询中计数查询未返回所需的结果。如何检查不存在的记录?
- vue.js - 何不在开发中加载头脚本
- javascript - React Material UI - DataGrid 不断从输入字段中窃取焦点
- dataweave - 如何在数据编织中将 JAXB 类转换为 xml?
- javascript - 将 observable 绑定到 jQuery ui datepicker
- assembly - 当我运行这个程序时,如何在我的 MARS 编译器中摆脱“掉底”?
- routes - 无法理解取件和交付示例代码的输出