比较HashMap和List并返回值

时间:2018-05-21 20:34:34

标签: android list hashmap

我已将用户手机中的联系人存储在地图中,其中phoneNumbers为键,contactNames为值。此外,我还在用户注册时检索了存储在Firebase中的phone_number。在下面的方法中,我将此地图与列表进行比较。

public static Collection包含(Map map,List list){

    Collection<String> keys = map.keySet();
    Set<String> result = new HashSet<>();
    for (String listItem:list) {
        if (keys.contains(listItem)){
            result.add(listItem);
        }
    }
    return result;  
}

当地图的密钥匹配时,从Firebase检索到phone_number,我希望获得与之关联的值。我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

考虑使用HashMap

   //Considering this stored contacts
    Map<String, String> contactsStored = new HashMap<>();
    contactsStored.put("999 999 999", "Anne");
    contactsStored.put("000 000 000", "Jonh");

    //and this firebase data               
    List<String> firebaseNumbers =  new ArrayList<>();
    firebaseNumbers.add("000 000 000");

    for (String firebaseNumberKey : firebaseNumbers) {
        contactsStored.get(firebaseNumberKey);
    }