使用stream流操作数组方法整理

1. int 和 Integer的转换

int[] 转 Integer[]

int[] ints = new int[];
Integer[] integers = Arrays.stream(ints).boxed().toArray(Integer[]::new);

Integer[] 转 int[]

Integer[] integers = new Integer[];
int[] ints = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();

2. int 和 String 的转换

String[] 转 int[]

String[] strs = new String[];
int[] ints = Arrays.stream(strs).mapToInt(Integer::parseInt).toArray();

int[] 转 String[]

int[] ints = new int[];
String[] strs= Arrays.stream(ints).mapToObj(String::valueOf).toArray(String[]::new);

int[] 转 String

int[] ints = new int[];
String s = Arrays.stream(ints).mapToObj(String::valueOf).collect(Collectors.joining(""));

3. List 和 int 的转换

List 转 int[]

List<Integer> list = new ArrayList<>();
int[] ints = list.stream().mapToInt(Integer::intValue).toArray();

int[] 转 List

int[] ints = new int[];
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());

4. int数组求最值

int[] 最大值

int[] ints = new int[];
int max = Arrays.stream(ints).max().orElse(0);

orElse方法设置一个默认值(这里设置为0),以防止找不到最大值时出现空指针异常。

int[][] 最大值

int[][] ints = new int[][];
int max = Arrays.stream(ints).flatMapToInt(Arrays::stream).max().orElse(0);

flatMapToInt方法将二维数组转换成一维流
orElse方法设置一个默认值(这里设置为0),以防止找不到最大值时出现空指针异常。

5. 数组求和

int[] 求和

int[] ints = new int[];
int sum = Arrays.stream(ints).sum();

int[][] 求和

int[][] ints = new int[][];
int sum = Arrays.stream(ints).flatMapToInt(Arrays::stream).sum();

List 求和

List<Integer> list = new ArrayList<>();
int sum = list.stream().mapToInt(Integer::intValue).sum();

6. 填充int数组

int[] 填充

int[] ints = new int[];
Arrays.fill(ints, 1);

int[][] 填充

int[][] ints = new int[][];
Arrays.stream(array).forEach(row -> Arrays.fill(row, 1));
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ronin_HSK

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

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

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

打赏作者

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

抵扣说明:

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

余额充值