list stream 去重_LeetCode 0349 两个数组的交集, stream()的用法总结

【20201102 每日一题】刷题使我快乐。200+题解已收录至我的GitHub,欢迎关注。

349. 两个数组的交集
难度简单261
给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。

这道题有非常多的写法,可以在List,Set之间来回折腾,总能写对的。

下面列举一个用stream()做的办法。速度不快,但我想顺便总结一下stream()的用法。

4608dd587d3e180ae706bc3bcb177c56.png
class 

stream()的用法总结

代码解释
stream()转化为流
toArray()转化为Arrays(泛型不变)
boxed()自动装箱
collect(Collectors.toList())转化为List
filter()通过调用的Lambda函数留下符合要求的元素
filter(n -> set.contains(n)) --留下set中含有的元素
distinct()去重
sum()求和 例如
Arrays.stream(nums).sum();
max()求最大值
min()求最小值
getAsInt()把结果转化为整型变量

一些例子

内容代码
Set<Integer> -> int[]set.stream().mapToInt(i->i).toArray();
List <Integer>-> Arrays int[]list.stream().mapToInt(Integer::valueOf).toArray();
int[] -> List<Integer>Arrays.stream(nums).boxed().collect(Collectors.toList());
int[] -> Integer[]Arrays.stream(nums).boxed().toArray(Integer[]::new);

欢迎点赞、评论、分享本文并且关注我的GitHub,已收录200+题解。

你所有的互动都是我坚持写下去的动力,谢谢。

以上。

0c930ee2073766c44f65dede453b7d69.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值