码迷,mamicode.com
首页 > 其他好文 > 详细

HashMap如何插入重复的键值

时间:2019-10-21 16:36:11      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:range   each   key   string   for   contain   sid   工作过程   ring   

我们都知道hashmap键值是不能重复的,但在我的实际工作过程中,我需要循环一个子教学班数组,把同一个教学班下的子教学班筛选出来,以教学班Id作为主键,当我查询教学班的时候,就能根据教学班的ID查询到所有的子教学班,那么我是如何实现的呢?如下图:定义一个map

/**
* 自定义map
* 用于存取键值重复数据
* @param <K>
* @param <V>
*/
private class TempMap<K,V> {
private HashMap<K, ArrayList<V>> data = new HashMap<>();
public boolean add(K k, V v) {
     // 判断是否存在key
if (data.containsKey(k)) {
data.get(k).add(v);
} else {
ArrayList<V> list = new ArrayList<>();
list.add(v); data.put(k,list);
}
return true;
}
public HashMap<K,ArrayList<V>> getData() {
return data;
}
}

// 调用
List<TeachingClassReadRangeEntity> teachingClassReadRangeEntities = redisInfoMapper.selectReadRange();
TempMap<String, TeachingClassReadRangeEntity> readRangeMap = new TempMap<>();
for(TeachingClassReadRangeEntity teachingClassReadRangeEntity : teachingClassReadRangeEntities){
readRangeMap.add(teachingClassReadRangeEntity.getTeachingClassId(), teachingClassReadRangeEntity);
}
Map<String, ArrayList<TeachingClassReadRangeEntity>> cacheReadRangeMap = new HashMap<>();
cacheReadRangeMap = readRangeMap.getData();

HashMap如何插入重复的键值

标签:range   each   key   string   for   contain   sid   工作过程   ring   

原文地址:https://www.cnblogs.com/preferlin/p/11713831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!