0

我真的被这个问题困住了,希望能得到一些帮助。

首先,我有一个正在运行的服务,其中包含一个简单的哈希图

ORIG_MSG_MAP 是一个带有 Integer,String 键值对的 hashmap。该服务有一个方法可以将 hashmap 的内容作为一个集合返回

//get entries in the hash 
public Set<Entry<String, Integer>> getNumbers() {
    // TODO Auto-generated method stub

    return ORIG_MSG_MAP.entrySet();


}

在我的活动中,我正在与服务交互,然后我在 customAdapter 中调用我的构造函数,它需要使用哈希图而不是 SET

活动

      /** Defines callbacks for service binding, passed to bindService() */
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
// We've bound to LocalService, cast the IBinder and get LocalService instance
LocalBinder binder = (LocalBinder) service;
mService = binder.getService();
mBound = true;
Set<Entry<String, Integer>> whatsup = mService.getNumbers();

----> 问号应该是对带有键值对的哈希的引用 <---- setListAdapter(new MyCustomAdapter(DynamicLists.this, R.layout.row, ???));

MyCustomAdapter 的构造函数他需要一个哈希

public MyCustomAdapter(DynamicLists dynamicLists, int row, HashMap<String, Integer> map){ 
mData = map;
mKeys = mData.keySet().toArray(new String[map.size()]);
Log.d(TAG, "INSIDE ADAPTER constructor HELLO WORLD " + map.entrySet()); 

}

你能帮我把一个集合转换回哈希吗

谢谢,

格雷厄姆

4

1 回答 1

1

试试看:

Set<Entry<String, Integer>> yourSet;
HashMap<String,Integer> yourMap = new HashMap<String,Integer>();
for (Entry<String,Integer> entry : yourSet) {
    yourMap.put(entry.getKey(),entry.getValue());
}

实际上,只需将集合中的每个条目添加到新的 HashMap 中

于 2012-04-20T12:38:39.740 回答