gpt4 book ai didi

java - 比较两个不同数组列表中的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:05 26 4
gpt4 key购买 nike

当我自学 Java 时,我一直在编写类似战舰的游戏,但我的方法遇到了问题,以确保当我创建一艘新船时,除非它的所有位置值都是唯一的,否则我不会添加它。

我做错了什么,因为我的方法不起作用,并且我得到了重复的值(或具有相同位置的船只)。

我有两个 ArrayList:

  1. 第一个列表是 Ship 对象的 ArrayList(我的游戏 Controller 类上的一个字段)
  2. 第二个列表是字符串形式的位置数组列表(例如 A5、B17 等)(这是我的 Ship 对象上的一个字段)

我检查要添加到 Ship 对象的 ArrayList 中的船舶是否具有唯一位置的方法如下:

private boolean hasUniqueLocs(Ship ship) {
for (Ship x : theShips) {
for (String y : ship.shipLocation) {
System.out.println("Checking to see if " + x.shipLocation + " ship contains this value: " + y);
if (x.shipLocation.contains(y)) {
return false;
}
}
}
return true;
}

所以“theShips”是 GameController 上我的 Ships 字段的 ArrayList(使用我的 Main 方法)。 “shipLocation”是我的 Ship 对象上保存位置的 ArrayList 字段。

我的 println() 语句从未运行,因此由于某种原因我永远无法运行 for 循环?

感谢您在这里提供的任何指导或见解!

最佳答案

好吧,我搞砸了。我对使用调试器还是个新手,我应该先去那里,但我已经习惯了代码中出现错误,我认为这就是问题所在,并且我不理解有关数组列表的某些内容。

调试后,我意识到直到调用此方法的方法结束时我才真正添加船只 - 因此,正如你们所指出的,数组列表中还没有任何对象。一旦我有了这个方向,就很容易看到我的问题。

谢谢大家!

关于java - 比较两个不同数组列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20914224/

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