2014-10-31 29 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