2014-10-31 59 views
1

我創建的關聯列表在這裏:協會名單,ArrayList中的Java

HashMap<Integer, String> PhoneNumber = new HashMap<>(); 

PhoneNumber.put(8559966, "Jill"); 
PhoneNumber.put(6669999, "James"); 
PhoneNumber(255666, "Dylan"); 

我想要做的就是把這個列表中的方法,但我只想看看字符串一半,吉爾,詹姆斯和迪倫。我迷失在如何做到這一點。我知道如何將一個ArrayList調用到一個方法中,而不是如何調用一個HashMap,以及如何查看字符串。

我想要做的東西喜歡這樣的:

public String getJill(ArrayList<Integer> PhoneNumber){ 
    String h; 
    for(int i = 0; i<PhoneNumber.size();; i++){ 
     if(PhoneNumber.values(i) == "Jill"){ 
      h = "Jill"; 
     } 
     return h; 
    } 
} 
+0

將電話號碼錶示爲「int」是一個壞主意。改用'String'。 – 2014-10-31 19:20:38

回答

3

你的意思Map.values()它返回一個Collection?

public static void main(String[] args) { 
    Map<Integer, String> phoneNumber = new HashMap<>(); 
    phoneNumber.put(8559966, "Jill"); 
    phoneNumber.put(6669999, "James"); 
    phoneNumber.put(255666, "Dylan"); 
    for(String s : phoneNumber.values()) { 
     System.out.println(s); 
    } 
} 

輸出在我的情況:

Jill 
Dylan 
James 

現在,如果你希望他們以相同的順序,你把它們放在Map必須使用LinkedHashMap代替HashMap

Map<Integer, String> phoneNumber = new LinkedHashMap<>(); 

然後你輸出將是:

Jill 
James 
Dylan 
+0

嗨我試過這個,但我得到一個錯誤,在我的包裝行說:「 - 類型java.util.Map $條目無法解析。它是間接引用從 \t必需的.class文件」當我導入HashMap – 2014-10-31 19:26:07

+0

我從來沒有提到'Map.Entry'是你的代碼中的其他位置?那麼你必須導入它'import java.util.Map.Entry;' – gtgaxiola 2014-10-31 19:27:59

+0

當我導入java.uitl。*時,會出現一些奇怪的錯誤信息。並嘗試在我的主類 – 2014-10-31 19:32:21