zoukankan      html  css  js  c++  java
  • HashMap如何插入重复的键值

    我们都知道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();
  • 相关阅读:
    HDU 2328 POJ 3450 KMP
    挨踢江湖之十八
    Solr4.2迁移到新项目下异常:java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
    滚动条
    《取悦症》听书笔记
    《洞见远胜创意》听书笔记-如何获得洞见
    《乌合之众》听书笔记
    《巨人的工具》听书笔记
    程序员职业生涯规划
    2017第20周摘录
  • 原文地址:https://www.cnblogs.com/preferlin/p/11713831.html
Copyright © 2011-2022 走看看