为了账号安全,请及时绑定邮箱和手机立即绑定

collect 方法时如何忽略 ArrayIndexOutOfBoundsException: 0?

collect 方法时如何忽略 ArrayIndexOutOfBoundsException: 0?

守着一只汪 2022-01-06 17:16:44
我想忽略 ArrayIndexOutOfBoundsException: 0。如果 port1[1] 不为空,我想更进一步。if (port1[1] != null){    String[] inputArray1=port1[1].split(",");    Map meInputs1 = Stream.of(inputArray1)                          .map(s -> s.split(":",2))                          .collect(Collectors.groupingBy(s -> s[0],                                     Collectors.mapping(s -> s[1],                                    Collectors.toList())));     }我在代码的第一行收到此错误java.lang.ArrayIndexOutOfBoundsException: 0如果我指向的项目是空的,我该如何跳过这个?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您可以通过添加条件逻辑来“忽略 ArrayIndexOutOfBoundsException: 0”以防止它发生。


在这种情况下,这意味着您要检查结果s.split(":",2)是否为 2 个值的数组,如果不是,则忽略/跳过。你可以通过调用来做到这一点filter():


Map<Object, List<Object>> meInputs1 = Stream.of(inputArray1)

        .map(s -> s.split(":",2))

        .filter(s -> s.length >= 2) // ignore entries in inputArray1 without a ':'

        .collect(Collectors.groupingBy(s -> s[0],

                 Collectors.mapping(s -> s[1],

                 Collectors.toList())));


查看完整回答
反对 回复 2022-01-06
  • 1 回答
  • 0 关注
  • 265 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号