gpt4 book ai didi

java - 在 Arraylist 中搜索包含某个元素的元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:41 26 4
gpt4 key购买 nike

我需要帮助。你能给我解决方案如何修复我的代码吗?我有一个 arraylist,其中每个包含一些元素。我想使用搜索方法仅通过一个元素关键字找到它。

这是要添加的代码

System.out.print("ID_Cargo >> ");
ID_Cargo=scan.next();
System.out.print("No_Container >> ");
No_Container=scan.next();
CARGO.add(new CARGO(ID_Cargo,No_Container));

这是搜索

String find;
System.out.println("ID Cargo : ");
find=scan.next();
if(CARGO.contains(find)){
System.out.println("FOUND");
}
else{
System.out.println("NOT FOUND");
}

搜索总是返回 Not found 但我找到的元素是存在的。如何修复它以返回 FOUND?谢谢。

最佳答案

它看起来像你的 CARGO列表包含 CARGO对象(使用相同的名称不是一个好主意),但您正在检查该列表中是否包含一个字符串 ( find),这自然会返回 false。

如果您想搜索 CARGO通过其标识符实例,a HashMap<String,CARGO>会更合适。

Map<String,CARGO> cargoMap = new HashMap<>();
cargoMap.put(ID_Cargo,new CARGO(ID_Cargo,No_Container));
...
if(cargoMap.containsKey(find)){
System.out.println("FOUND");
} else {
System.out.println("NOT FOUND");
}

编辑:

显示 CARGO 的属性具有 find 的实例键(假设你的 CARGO 类有这样的 getter 方法):

CARGO cargo = cargoMap.get(find);
if (cargo != null) {
System.out.println("FOUND: " + cargo.getCargoID() + " " + cargo.getContainerNo());
} else {
System.out.println("NOT FOUND");
}

关于java - 在 Arraylist 中搜索包含某个元素的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com