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();

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

时间: 2025-01-15 00:27:29

HashMap如何插入重复的键值的相关文章

HashMap存储自定义类型键值

原文地址:https://www.cnblogs.com/wulinmiao/p/12150137.html

angularJS操作键值对象(类似java的hashmap)填坑小结

前言: 我们知道java的hashmap中使用最多的是put(...),get(...)以及remove()方法,那么在angularJS中如何创造(使用)这样一个对象呢 思路分析: 我们知道在java中可以采用链式访问和"[]"访问hashmap的某一个值 具体实现: 链式访问: .factory('ParamsServices', function () { var params = {}; return { get: function (key) { return params.

JavaSE8基础 HashMap remove 删除指定的键值对

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) code: package jizuiku0; import java.util.HashMap; /* * @version V17.09 */ public class MapDemo_011 { public static void main(String[] args) { HashMap<Integer, String>

JavaSE8基础 HashMap&lt;Integer,String&gt; entrySet遍历 键值对的集合

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) code: package jizuiku0; import java.util.HashMap; import java.util.Map.Entry; import java.util.Set; /* * @version V17.09 */ public class MapDemo_1111 { public static

List&lt;HashMap&lt;String,String&gt;&gt; list, 根据hashmap中的某个键的值排序

//可以使用Collections.sort(List list, Comparator c)来实现 这里举例hashmap中存的一个时间的键值,按照时间的值来排序 //先写个类实现Comparator,并重写compare(Object o1, Object o2)方法,在方法中自定义比较逻辑 public class MyComparator implements Comparator { @Override     public int compare(Object o1, Object 

Android HashMap按照键值排序的两种方法

有如下一个 Map 对象: HashMap<Integer, String> map = new HashMap<Integer, String>(); map.put(3,"A"); map.put(2,"B"); map.put(1,"C"); 键值排序第一种方法: Object[] key = map.keySet().toArray(); Arrays.sort(key); for(int i = 0; i<

提示不能从T_ECC_MEMBER_L插入重复键值

问题:当新增会员档案时,提示不能从T_ECC_MEMBER_L插入重复键值: 解决方法: /*查询异常档案资料,并且找出最大的正常id,插入临时表*/ select  fpkid,2553587+ROW_NUMBER() over(order by fpkid) xuhao into memberl from T_ECC_MEMBER_L where fpkid  like '100002%' /*更新*/ update a set  a.fpkid=xuhao From T_ECC_MEMBE

Java的HashMap键值对存储结构解析

容器总体结构 Map存储键值对的数据结构是“数组+链表”的结构,结合了数组查询数据快和链表增删数据快的优点:用Entry[]存储键值对,Entry为类类型,类里面有四个属性:hash.K.V.next,分别存储哈希值.键对象.值对象.下一个Entry对象引用. Entry底层源码 Entry对象存储结构图 Entry数组存储结构图 HashMap存储数据过程示意图 我们的目的是将”key-value两个对象”成对存放到HashMap的Entry[]数组中.参见以下步骤: (1) 获得key对象的

HashMap按键排序和按值排序

一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map.map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度.HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为 Null.非同步的. T