从哈希映射访问对象

时间:2011-02-28 08:29:04

标签: java

我的Hashmap声明为HashMap<String, ArrayList<SortableContactList>>,其中SortableContactList列表是POJO类

public class SortableContactList {
    private long id;
    private String displayName;
    private String homePhone;
    private String workPhone;
    private String mobilePhone;
    private String primaryEmail;
    private String tags;
         // Getters and Setters
}

将我的hashmap初始化为

myHash.put(keyChar, arrayOfSortableContactList_objects)

我需要获取存储在arraylist中的对象的每个属性。我该怎么做呢。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么对于各个属性,你需要myHash.get("myKeyString").get(x).getHomePhone()行。问题仍然是,如何确定x,所以也许你应该考虑接受MarcoS的建议,实现HashMap如下:HashMap<String, SortableContactList>

你应该考虑实现hashCode为您的SortableContactList确保正确的散列,即在HashMap中存储和检索对象。有关详细信息,请参阅此great advice from Effective Java

编辑:添加了MarcoS关于将HashMap实现为HashMap<String, SortableContactList>的建议

答案 1 :(得分:0)

无法理解你的问题。 请详细说明。

有两种方法可以实现排序:

  1. 在SortableContactList类中实现Comparable接口;实现方法compareTo()的功能。此界面可帮助您更改sort()方法的自然顺序。

  2. 如果您想使用不同的属性进行排序,那么您应该实现包含Comparator的{​​{1}}界面 在这里,您可以提供您想要对对象进行排序的基础。

  3. 希望这很有用