2016-12-10 23 views
1
Hashtable<String, Integer> coordinates= new Hashtable<String, Integer>(); 
String value = (String) cb1.getSelectedItem(); 
if(value==coordinates.keys()) 

它給了我一個「不親操作字符串類型和計數」的錯誤,任何想法,我可以怎麼這兩個比較沒有一個循環?試圖將字符串比較Hashtable的鍵/值

+0

@javaguy其的組合框:最終的JComboBox CB1 =新的JComboBox (Places1); – Commongrate

+0

然後:你永遠不會使用==比較字符串,而是使用equals方法! – GhostCat

回答

3

你不能簡單地因爲SetStrings的集合。比較起來就像是「我有這一桶蘋果,我拿到了這個蘋果,讓我們來比較一下」。你可以做的是檢查String是否爲Set的一部分,就像調用coordinates.keys().contains(value)一樣簡單。

而關於比較:
不要比較Strings使用====按價值進行比較,這將在Objects的情況下,如Strings作爲參考。改爲使用string1.equals(string2)。本主題涵蓋範圍更廣in this question

0

使用keySet方法將返回一個Collection。然後調用包含所選值。

Hashtable<String, Integer> coordinates= new Hashtable<String, Integer>(); 
    String value = (String) cb1.getSelectedItem(); 
    if (coordinates.keySet().contains(value)) { 
     //Some action... 
    }