有关list根据不同的条件,存储的对应信息数量不同

简介: 有关list根据不同的条件,存储的对应信息数量不同

有关list根据不同的条件,存储的对应信息数量不同

需求大致是这样的 :我需要根据用户上传的Excel信息,解析出对应的实体信息,比如 ID :100,对应的bookID 有:2121,324,423;总之就是一对多的关系。

解决思路: 我这里是创建了一个map<String ,Set集合,其中的key就是对应的ID,value对应着bookId。

public List<HotellistHotelarray> getHotelIdsByExcel(MultipartFile multipartFile){
        List<HotellistHotelarray> resultList=new ArrayList<>();
        //创建map集合 用于存储对应的酒店id信息
        Map<String,Set<Long>> map=new HashMap<>();
        //调用方法,获取上传的excel信息
        BaseResponseModel<Map<String, List<HotelExcelPo>>> model = this.addHotellistInfoByExcel(multipartFile);
        Map<String, List<HotelExcelPo>> listMap = model.getT();
        for (String key : listMap.keySet()) {
            HotellistHotelarray hotelarray = new HotellistHotelarray();
            //获取对应的map值
            List<HotelExcelPo> hotelExcelPoList = listMap.get(key);
            for (HotelExcelPo hotelExcelPo : hotelExcelPoList) {
                hotelarray.setCityid(key);
                if (map.containsKey(key)) {
                    map.get(key).add(hotelExcelPo.getHotelId());
                    Set<Long> hotelIds = map.get(key);
                    String join = StringUtils.join(hotelIds, ",");
                    hotelarray.setHotelarray(join);
                } else {
                    HashSet<Long> hashSet = new HashSet<>();
                    hashSet.add(hotelExcelPo.getHotelId());
                    map.put(key, hashSet);
                    Set<Long> hotelIds = map.get(key);
                    String join = StringUtils.join(hotelIds, ",");
                    hotelarray.setHotelarray(join);
                }
            }
            resultList.add(hotelarray);
        }
        return resultList;
    }
相关文章
|
3月前
|
存储 消息中间件 缓存
Redis不止能存储字符串,还有List、Set、Hash、Zset,用对了能给你带来哪些优势?
Redis不止能存储字符串,还有List、Set、Hash、Zset,用对了能给你带来哪些优势?
|
4月前
|
存储 SQL 关系型数据库
Mysql鸡础(从数据库中导入学生数据用list集合存储emp成员)
Mysql鸡础(从数据库中导入学生数据用list集合存储emp成员)
|
6月前
|
存储 消息中间件 NoSQL
12Redis - 存储list(使用场景)
12Redis - 存储list(使用场景)
26 0
|
6月前
|
存储
11Redis - 存储list(命令)
11Redis - 存储list(命令)
35 1
|
6月前
|
存储 NoSQL Redis
10Redis - 存储list(原理)
10Redis - 存储list(原理)
33 1
|
9月前
|
存储 关系型数据库 MySQL
Mybatis plus 存储 List、Map
Mybatis plus 存储 List、Map、自定义类型
508 0
|
10月前
|
存储 索引
创建List保存学生信息
创建List保存学生信息
47 0
|
10月前
|
存储 前端开发 Java
【JavaWeb】JAVABean+Session实现JSP登录注册(List模型数据库用户信息存储+商品展示)
先说说这个题目吧,好端端的数据库不连,偏偏喜欢要整一个JavaBean和List来模拟数据库,虽然说这样的做法非常的愚蠢,但没办法,毕竟是主人的任务是吧doge。作者其实已经做了一版,但是这代码写的实在是。。。于是乎作者使用了MVC框架后整理了一个新的。(如果你学了servlet,那会发现和它的结构和思想非常的像)
85 0
|
存储
编写一个应用程序,在主类Test1类中,创建两个链表List&lt;E&gt;对象,分别存储通过键盘输入的字符串内容
编写一个应用程序,在主类Test1类中,创建两个链表List&lt;E&gt;对象,分别存储通过键盘输入的字符串内容
52 0
|
存储 Java Scala
scala中的list怎么存储对象
scala中的list是一个不可变的列表,有时候我们想直接添加对象不太方便,这个时候可以先转成java的List添加完再转回去. LIst支持在头部快速添加和移除条目,但是不提供快速按下标访问的功能,这个功能需要线性遍历列。 快速的头部添加和移除意味着模式匹配很顺畅