干饭的小狐狸 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 SD的animatediff插件报错,只出单张图片,出不来动图
  • ¥28 opencv Cuda C++编译
  • ¥15 插入sim卡4g模组反复断连
  • ¥100 如何把 16bit Bayer 图像数据转换为 TIFF RGB
  • ¥15 进行基于用户的协同过滤推荐,使用准确率和召回率评价推荐模型的效果
  • ¥15 关于#cesium#的问题:cesium 根据经纬度、高度、方位角、俯仰角和距离求另一点高度
  • ¥15 word脚注设置不起空格符号
  • ¥15 为什么apriori的运行时间会比fp growth的运行时间短呢
  • ¥15 求解密json或者美化
  • ¥15 帮我解决一下膳食平衡的线性规划模型的数据实例