干饭的小狐狸 2021-05-25 19:12 采纳率: 75%
浏览 59
已采纳

求各位大佬讲解,利用idList查询数组出来,遍历数组并且将数组合并去重,我的查询和数组数据对不上

我的数据库中有一列值,是数组,要使用IdList去查询,因为是按照IDList查询的,所以会有多个数组被查出来,我要对这些数组进行合并并且去重,

我的mapper.xml中的SQL是这么写的

select  content from result 

<where> id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">

#{id} </foreach> <where>

Mapper中是这样的

List<Result> queryResultData(@Param("aray") String[] resultIdList);

 

controller层是这样的

public ResponseResult<List<Result>> queryResultData(@ApiParam(value = "IDList", required  true) @RequestParam(value="resultIdList")String[] resultIdList){

   List<Result> result = resultService.queryResultData(resultIdList);

return ResponseResult.SUCCESS(result);

}

 

ServiceImpl是这样写的

这是我查询content数组的语句

public List<Result> queryResultIdList(String[] resultIdList){

   List<Result> result = resultMapper.queryResutData(resultIdLIst);

   for(int i = 0; i < result.size(); i++) {

 

}

}

 

 

 

这是我写的数组合并去重的语句

Map<String, Object> nodes = new HashMap();

List<Map<String,Object>> nodeList = new ArrayList();

nodes.forEach((k,v)->{

if(v!=null && v instanceof Map){

nodeList.add((Map)v);

}

});

 

Map<String, Object> edges = new HashMap();

List<Map<String,Object>> edgeList = new ArrayList();

edges.forEach((k,v)->{

if(v!=null && v instanceof Map){

edgeList.add((Map)v);

}

});

 

List<Map<String,Object>> nodeList1 = nodeList.stream().collect(Collectors,collectingAndThen)(

      Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> Long.parseLong(o.get("_id")+"")))), ArrayList::new);

List<Map<String,Object>> edgeList1 = edgeList.stream().collect(Collectors,collectingAndThen)(

      Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> Long.parseLong(o.get("_id")+"")))), ArrayList::new);

 

但是这么写的话就会出现返回值的时候,就会变成

nodes.put("nodes",nodesList1);

edges.put("edge",edgeList1);

这样

 

主要问题是,我的搜索怎么和我的数组合并的代码,能顺利的走下来,就是下面的数组怎么接上上面查询的值,

还有后面的返回值的问题,求各位大佬讲解,这种代码我第一次写

  • 写回答

1条回答 默认 最新

  • BCS-点心 2021-05-25 21:50
    关注

    1.把所有查询的数据合并成一个集合

    2.用set集合的特性,把重复数据去除掉

    3.核心三点:查询、去重、组合

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划