List转set_JAVA数组转set内容不一致

List转set_JAVA数组转set内容不一致list集合和set集合的相互转化

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

该段可忽略———————-


最近做的一个项目中,用到了list转set的应用,索性就发个帖子记录一下。

简单说一下背景,当时是为了实现查询出来的帖子中显示出当前用户对该帖子是否有点赞和收藏的动作,即前端需要当前用户对该帖子的点赞和收藏状态,来标记点赞、收藏按钮,是否为点亮还是灰色。

因为是批量展示帖子,刚开始的做法是取出查询出来的帖子的ids,去到点赞表里查这些帖子的点赞状态。由于我们有自定义的返回体,所以整个过程比较繁琐。后面就用到了list转set的用法,直接去判断set中存不存在点赞的id,存在为true,不存在为false。

上面一段是自己的记录,可忽略直接看下一段。 

 list转set(多出的代码段,结合了部分业务内容)

//获取帖子集合
List<Post> postList=postService.pagePost(req);

//获取所有帖子的ids
list<Long> ids=postList.stream().map(x -> x.getId()).collect(Collectors.toList());

//获取所有点赞帖子的ids
List<Long> likeIds = likeService.selectLikesByIds(ids).stream().map(o ->o.getTargetId()).collect(Collectors.toList());

//list转set(重点)
Set<Long> likeSet = new HashSet<>(likeIds);

//将点赞状态set进返回体
postResponse.setLikeStatue(likeSet.contains(postResponse.getId()));
//第二种list转set的方法
Set<Long> likeSet = likeService.selectLikesByIds(ids).stream().map(o ->o.getTargetId()).collect(Collectors.toSet());

 set转list

//Set转化成List

//方法一
Set<String> set = new HashSet<String>();
set.add("mmmmmm");
set.add("nnnnnn");
set.add("ssssss");
List<String> list = new ArrayList<String>(set);

//方法二,使用迭代器
Set<String> set = new HashSet<String>();
set.add("aaaaa");
set.add("bbbbb");
set.add("ccccc");
List<String> list = new ArrayList<String>();
Iterator it=set.iterator();
while(it.hasNext())
{
    list.add(it.next());
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184114.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ContentMode 几个属性

    ContentMode 几个属性

    2022年1月8日
    41
  • matlab latex换行,Latex 公式中换行问题

    matlab latex换行,Latex 公式中换行问题问题一、对于两个公式,只要一个编号(相当于一个公式分两行排列)解决方案有两种:(一)\begin{equation}\begin{split}(a+b)^2&=a^2+b^2+2ab\\(a+b+c)^2&=a^2+b^2+c^2+2ab+2ac+2bc\end{split}\end{equation}(二)\begin{equation}\begin{aligned}c^{j…

    2022年6月1日
    79
  • 送学计算机男生什么礼物好,【十大男生喜欢的礼物】男生渴望收到什么礼物_主妇网…「建议收藏」

    送学计算机男生什么礼物好,【十大男生喜欢的礼物】男生渴望收到什么礼物_主妇网…「建议收藏」下周就是一年一度的西方情人节了,有恋人的都已经在想购买什么礼物给自己的爱人了。有心上人的也想着是不是要在情人节表白,想要让自己的男友开心,就一定要想好有什么礼物可以送给对方啦!小编整理了男生最渴望收到的礼物排行榜,希望能够给你一些启发哦!一、钱包钱包对于男人而言是为数不多的几件装饰品之一,而且也非常的实用,不论对方是不是已经有钱包了,你还是可以买一个给他。让对方在日常生活中拿出钱包就想起了你,而且…

    2022年7月25日
    12
  • 力扣题库练习

    力扣题库练习1给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]本人简单暴力解答:vartwoSum=function(nums,

    2025年6月10日
    3
  • 简单介绍python的双向队列

    简单介绍python的双向队列

    2021年11月27日
    53
  • pidstat_pidstat「建议收藏」

    pidstat_pidstat「建议收藏」性能监控,pidstat就够了!安装:yuminstall-ysysstat常用参数:-u:默认的参数,显示各个进程的cpu使用统计-r:显示各个进程的内存使用统计-d:显示各个进程的IO使用情况-p:指定进程号-w:显示每个进程的上下文切换情况-t:显示选择任务的线程的统计信息外的额外信息-T{TASK|CHILD|ALL}这个选项指定了pidstat监控的。TASK表示报告…

    2025年8月22日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号