Hashtable<String, Integer> coordinates= new Hashtable<String, Integer>();
String value = (String) cb1.getSelectedItem();
if(value==coordinates.keys())
它給了我一個「不親操作字符串類型和計數」的錯誤,任何想法,我可以怎麼這兩個比較沒有一個循環?試圖將字符串比較Hashtable的鍵/值
Hashtable<String, Integer> coordinates= new Hashtable<String, Integer>();
String value = (String) cb1.getSelectedItem();
if(value==coordinates.keys())
它給了我一個「不親操作字符串類型和計數」的錯誤,任何想法,我可以怎麼這兩個比較沒有一個循環?試圖將字符串比較Hashtable的鍵/值
你不能簡單地因爲Set
是Strings
的集合。比較起來就像是「我有這一桶蘋果,我拿到了這個蘋果,讓我們來比較一下」。你可以做的是檢查String
是否爲Set
的一部分,就像調用coordinates.keys().contains(value)
一樣簡單。
而關於比較:
不要比較Strings
使用==
。 ==
按價值進行比較,這將在Objects
的情況下,如Strings
作爲參考。改爲使用string1.equals(string2)
。本主題涵蓋範圍更廣in this question
使用keySet方法將返回一個Collection。然後調用包含所選值。
Hashtable<String, Integer> coordinates= new Hashtable<String, Integer>();
String value = (String) cb1.getSelectedItem();
if (coordinates.keySet().contains(value)) {
//Some action...
}
@javaguy其的組合框:最終的JComboBox CB1 =新的JComboBox (Places1); –
Commongrate
然後:你永遠不會使用==比較字符串,而是使用equals方法! – GhostCat