随笔记录工作日志

工作中遇到的问题随笔记录

1、将map集合中的key/value数据按照一定的需求过滤出来,并将过滤出来的map的key值存到list集合中

首先想到的是stream流,但是我对stream流的用法基本不熟,记不住方法,如果坚持用stream流去实现这个需求,要么去系统的学一遍stream流的各种用法,要么就从需求本身入手,这个需求需要哪些方法,再去对应了解和使用;时间成本问题,这里我选择后者。

首先就是要将map集合转化为stream流。

map.entrySet().stream()

stream流中过滤的方法是filter,那么这段代码这变成了

   map.entrySet().stream().filter()

比如过滤条件是map的value要等于String类型的"link"

   map.entrySet().stream().filter((entry) -> entry.getValue().equals("link"))

过滤完之后,因为stream的特性

Stream流只能操作一次;
Stream方法返回的是新的流;
Stream不调用终止方法,中间的操作不会执行。

所以要将这个流再次转换为map才能进行下一步操作

   map.entrySet().stream().filter((entry) -> entry.getValue().equals("vlink"))
           .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))

将过滤出来的map的key值存到list集合中

   list.addAll(map.entrySet().stream().filter((entry) -> entry.getValue().equals("vlink"))
           .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)).keySet());  

2、接口入参要求是list,但是实际的需求只能传一个参数,需要new一个list集合来存放这个参数吗?

Collections.singletonList() 是一个静态方法,它返回一个包含单个指定元素的不可变列表。该方法接受一个参数,即要包含在列表中的元素。这个方法通常用于创建只包含一个元素的列表,因为这种情况下使用普通的 ArrayListLinkedList 等列表实现会浪费内存和资源。由于返回的列表是不可变的,因此不能向其添加或删除元素,但可以通过 get() 方法获取其中的元素。

List<String> link = Collections.singletonList("link");
String link = link.get(0);

3、程序启动后,获取启动后最近的一个整点和距离这个整点还有多少秒

LocalDateTime now = LocalDateTime.now();
LocalDateTime nextHour = now.plusHours(1).withMinute(0).withSecond(0).withNano(0);
long secondsUntilNextHour = ChronoUnit.SECONDS.between(now, nextHour);
System.out.println("Next hour: " + nextHour + ", seconds until next hour: " + secondsUntilNextHour);

待续…………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

King'sLanding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值