0

Hash喜欢

 private Map<String, List<MEventDto>> mEventsMap;

然后我想检查密钥是否已经存在。如果存在,我将只更新值并添加一个新键。我怎样才能做到这一点。

我尝试喜欢:

for (MEventDto mEventDto : mEventList) {
    String mEventKey = mEventDto.getMEventKey();
    String findBaseMEvent = mEventKey.split("_")[0];

    if (mEventsMap.get(findBaseMEvent ) != null) {
        // create new one
        mEventsMap.put(findBaseMEvent , mEventDtoList);
    } else {
        // just update it
         mediationEventsMap.
    }
}

我该怎么做Hash

4

3 回答 3

1

您可以使用Map#containsKey检查密钥是否存在:-

所以,在你的情况下,它会是这样的: -

if (mEventsMap.containsKey(findBaseMEvent)) {
      // just update the enclosed list
      mEventsMap.get(findBaseMEvent).add("Whatever you want");            
} else {
      // create new entry
      mEventsMap.put(findBaseMEvent , mEventDtoList);
}
于 2012-10-18T11:43:22.983 回答
0

HashMap containsKey()可以使用这个方法

 boolean    containsKey(Object key) 
      Returns true if this map contains a mapping for the specified key.
于 2012-10-18T11:42:12.547 回答
0

你可以这样做:

String mEventKey = mEventDto.getMEventKey();
String findBaseMEvent = mEventKey.split("_")[0];

List<MEventDto> list = mEventsMap.get(findBaseMEvent);
/* 
 * If the key is not already present, create new list, 
 * otherwise use the list corresponding to the key.
 */
list = (list == null) ? new ArrayList<MEventDto>() : list;

// Add the current Dto to the list and put it in the map.
list.add(mEventDto);
mEventsMap.put(findBaseMEvent , mEventDtoList);
于 2012-10-18T11:44:28.237 回答