if (!mainMethods.matrix.isEmpty()) {
for (int i = 0; i < mainMethods.matrix.values().size(); i++) {
if (mainMethods.matrix.containsValue(getArrayList()[i].getValue().toString().contains(textValue.getText()))) {
String errorTitle = "Impossível completar a operação.";
String errorMessage = "Não é possível adicionar um valor de chave repetido.";
JOptionPane.showMessageDialog(getParent(), errorMessage, errorTitle, JOptionPane.ERROR_MESSAGE);
}
}
這個HashMap叫做「matrix」,它有很多鍵。每個鍵的值都是一個具有自己的值的ArrayList。考慮到這一點,我無法找到一種方法來測試ArrayList-Values中是否存在特定值,因爲如果我將一個String參數傳遞給HashMap的方法「.containsValue()」,該方法將找到一個ArrayList對象和測試將是錯誤的。因此,我必須做一些相當瘋狂的事情,就像我在例子中做的那樣。正如你所看到的,沒有像「getArrayList()」或「getValue()」這樣的東西。這是一個非常複雜的情況,我試圖用「僞碼」來解釋我的觀點。Java - 如何檢查一個ArrayList中的值是否是HashMap中的一個鍵的值?
你知道如何解決它嗎?
我建議你嘗試簡化你的代碼。我並不認爲你真的是要編寫你所寫的代碼。嘗試將代碼分解成更短的代碼行,並查看它們在調試器中的作用。 –