List<Integer> a = Arrays.asList(1, 2, 3);
Integer b = a.stream().filter(x -> x.equals(4)).findFirst().get();
System.out.println(b);
Exception in thread “main” java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135)
解决方法:将.get()替换为.orElse(null),这样就会返回null值了。
在写代码调试时,发生空指针异常,定位代码是在使用stream()的findAny()出报错,后发现是因为结果中存在null的数据,导致可空指针,findFirst()也是如此;
所以使用前先去空
业务开发中会运用到很多的List集合数据类型,存放我们需要的业务数据,比如说有个产品产量信息表T,业务需要用柱状图展示每个产品每个月的产量图示,那我们定义了一个实体类ProductVO来传递这些数据,包含了月份month,总数count,产品pro,通过dao.xml中对产量信息表进行SQL编程,将产量数按月份和产品分组求和,最终返回在一个List中。get方法则返回处理的元素。方法在此流中查找第一个元素作为。
Joiner.on(",").join(list)
取出对象集合中指定条件的对象(过滤)
最后结尾的.findFirst().get();是拿第一个值,如果想要集合结尾替换为.collect(Collecto
说明:JAVA8用stream流来循环取LIST值时,如果值为空时会报 null point exception异常,解决办法为提前判断该值是否为空。下面是决断为空的写法。场景说明:我有一个产品LIST,我要遍历此LIST,生成一个MAP,key为id,value为nameBEAN如下:@Setter@Getterpublic class Product {private String id;p...
点击蓝色“Java极客技术”关注我哟加个“星标”,天天早上08:14,一起快乐成长01、前言如果要给 Java 所有异常弄个榜单,我会选择将 NullPointerEx...
类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串
Liststrings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
System.out.pr