首页 > 其他分享 >多个list取交集,查询的问题

多个list取交集,查询的问题

时间:2024-07-24 14:29:30浏览次数:21  
标签:cityCodes 交集 CollectionUtils list 查询 add isEmpty tempList

查询条件有多个,但对应数据库就1个字段,此时,查询条件需要取交集。

Collection<String> districtCodes = queryPageDTO.getDistrictCodes();
Set<String> levelCityCodes = handleCityLevel(queryPageDTO);
Set<String> levelRegionCityCodes = handleCityLevelRegion(queryPageDTO);

// 3个List取交集(但不包含空)
List<Collection<String>> tempList = new ArrayList<>();
if(!CollectionUtils.isEmpty(districtCodes)){
tempList.add(districtCodes);
}
if(!CollectionUtils.isEmpty(levelCityCodes)){
tempList.add(levelCityCodes);
}
if(!CollectionUtils.isEmpty(levelRegionCityCodes)){
tempList.add(levelRegionCityCodes);
}

Collection<String> cityCodes = new HashSet<>();
if(!CollectionUtils.isEmpty(tempList)){
cityCodes = tempList.get(0);
for(int i = 1;i < tempList.size();i++){
cityCodes.retainAll(tempList.get(i));
}

// 取交集为空的情况下,默认一个值,查询不到
if(CollectionUtils.isEmpty(cityCodes)){
cityCodes.add("-1");
}
}

queryPageDTO.setDistrictCodes(cityCodes);

标签:cityCodes,交集,CollectionUtils,list,查询,add,isEmpty,tempList
From: https://www.cnblogs.com/maohuidong/p/18320839

相关文章

  • QListWidget实现内部拖动排序功能
    1.需求将QListWidget有很多的任务,需要拖动任务,手动进行排序,并且需要保存拖动之后的顺序,软件重新打开要是修改之后的顺序;(1)继承QListWidget,重写一个QListWidget自定义类#ifndefDROPLISTWIDGET_H#defineDROPLISTWIDGET_H#include<QListWidget>#include<QDropEvent>clas......
  • Oracle 中 LISTAGG 函数的介绍以及使用
    原文地址:https://www.cnblogs.com/codeLearn/p/17931924.htmlLISTAGG函数介绍listagg函数是Oracle11.2推出的新特性。其主要功能类似于wmsys.wm_concat函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG使用listagg函数有两个参数: 1、要合并的......
  • 通过子树 id 查询所有父级
    思路:向上查找父级树loopTreeFindChecked(node){constfindParentTree=(data,parentId)=>{if(!data)return;data.forEach(item=>{if(item.id===parentId){this.checkedTreeList.unshift({id:parentId,......
  • Django 序列化程序无法将查询集序列化为 JSON
    尝试简单的Django序列化器。我使用具有特定值的queryset然后我将queryset或queryset.values()传递给序列化器。为什么会出现500错误?@csrf_protectdefgeoLookup(request,**kwargs):country=kwargs.get('Country')city=kwargs.get('Place'......
  • 如何在不修改DBAPI游标的情况下捕获SQLAlchemy中的所有SQL查询结果?
    我正在尝试实现一个系统,该系统捕获SQLAlchemy中的所有查询结果以用于日志记录和分析目的。然而,在尝试直接修改DBAPI游标时,我遇到了挑战,因为它的属性通常是只读的。因此需要:捕获SELECTSQL查询的所有结果,并使用不同的结果获取方法(fetchone、fetchmany、fetchall、ite......
  • 用 Count 注释的查询集正在计算错误发生次数
    我想计算名称在查询集中出现的次数:items=self.get_queryset()items=items.values("name").annotate(count=Count("name")).order_by("-count")其中get_queryset()返回带有一些过滤器和注释的项目列表。defget_queryset(self):return(sel......
  • 《Java初阶数据结构》----3.<线性表---LinkedList与链表>
    目录前言一、链表的简介1.1链表的概念1.2链表的八种结构 重点掌握两种1.3单链表的常见方法三、单链表的模拟实现四、LinkedList的模拟实现(双链表)4.1 什么是LinkedList4.2LinkedList的使用五、ArrayList和LinkedList的区别 前言   大家好,我目前在学习......
  • CSS 容器查询 CSS Container Queries
    CSS容器查询的主要思想是将一个元素注册为“容器”,并在容器元素满足某些条件时将样式应用于其他元素。 容器查询通常被认为是响应式网页设计的一种现代方法,其中传统媒体查询长期以来一直是黄金标准-原因是我们可以创建由响应容器宽度而不是视口宽度的元素组成的布局。.par......
  • 代码随想录算法训练营Day5、6 | Leetcode 242 有效字母的异位词 Leetcode 349 两个数
    前言因为昨天休息所以把两天合并成一天来写,昨天把上周的题又重写了一遍,发现一些细节还是要注意。今天的题目都是查找,也涉及到了最近正在学的STL。Leetcode242有效字母的异位词 题目链接:https://leetcode.cn/problems/valid-anagram/description/代码随想录题解:代码随想......
  • 使用ublacklist屏蔽某度
    谷歌浏览器,已升级到最新版,uBlacklist插件也已安装设置如下:内容:baidu.com*://*.baidu.com/*tieba.baidu.com*.baidu.*/勾选要启用的搜索引擎:启用后效果如下:点开发现确实屏蔽掉某度了,感觉整个世界瞬间清净晒:惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚~冯唐易老,李广难封。......