簡體   English   中英

比較兩個不同數組列表中的字符串

[英]Comparing the strings in two different arraylists

在我自學Java的過程中,我一直在編寫類似戰艦的游戲,但是我的方法遇到了問題,即確保在創建新船時除非所有位置都不會添加它值是唯一的。

我做錯了,因為我的方法不起作用並且我得到重復的值(或具有相同位置的船)。

我有兩個ArrayLists:

  1. 第一個列表是Ship對象的ArrayList(我的游戲控制器類上的一個字段)
  2. 第二個列表是字符串形式的Locations的ArrayList(例如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循環?

感謝您提供的任何指導或見解!

好吧,我吹了。 我仍然不熟悉調試器,應該先去那里,但是我已經習慣於在代碼中出現錯誤,以至於我認為這是問題所在,並且關於數組列表的某些內容我還不了解。

調試后,我意識到直到調用該方法的方法結束才真正添加飛船-因此,正如你們指出的那樣,數組列表中還沒有任何對象。 一旦有了這個指示,就很容易看到我的問題。

感謝大家!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM