java8的stream是一个非常强大的功能,今天遇到List<Object>求和,如果Object是个对象,你可以这么写👇:
int sum = list.stream().mapToLong(User::getAge).sum();
如果你是List<int>,你可以这么写👇:
int sum = list.stream().reduce(Integer::sum).orElse(0);
但如果你是List<Object>,而object又是Integer,你可以这样👇:
Integer o = inventorys.stream().map(String::valueOf).map(Integer::valueOf).reduce(Integer::sum).orElse(0);
解释下最后一行再干嘛:
第一个.map(String::valueOf)
是将object转换为string,第二个.map(Integer::valueOf)
是将string转为integer,.reduce(Integer::sum)
这个是求和;