System.out.println("===========Integer类型求和==================");
Integer sum = list.stream().reduce(Integer::sum).orElse(0);
Integer sum1 = list.stream().mapToInt(Integer::intValue).sum();
System.out.println(sum+","+sum1);
System.out.println("===========Integer类型求最大值==================");
Integer max = list.stream().reduce(Integer::max).orElse(0);
int max1 = list.stream().mapToInt(Integer::intValue).max().getAsInt();
Syste
对集合进行遍历 list.stream().forEach(s-> System.out.println(s));一对list集合中的Integer类型元素进行操作1、对List集合中的Integer类型元素进行求最大,最小,平均值。 //Integer类型求和 System.out.println("===========Integer类型求和=================="); Integer sum = list.stream().reduce(I
Java8原生只提供了summingInt、summingLong、summingDouble三种基础类型的方法,想要对BigDecimal类型的数据操作需要自己新建工具类如下:
新建接口ToBigDecimalFunction
@FunctionalInterface
public interface ToBigDecimalFunction<T> {
BigDecimal applyAsBigDecimal(T value);
新建工具类CollectorsUtil
publi
List<Integer> numList = Arrays.asList(1,2,5,10);
//方法一:
int max = numList.stream().mapToInt(x -> x).summaryStatistics().getMax();
int min = numList.stream().mapToInt(x -> x).summaryStatistics().getMin();
doubl...
Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。stream不是数据结构,不会保存数据;惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算。
直接上代码:为了方便验证,有些中间加了条件,筛出部分数据进行操作
@Test
void testStream(){
List<Persion> list = new ArrayList
//数据类型转换
String[] integerArray = {"1", "2.3", "8"};
List<String> list = new ArrayList<>(Arrays.asList(integerArray));
double sum = list.stream().mapToDouble(Double::parseDouble).summaryStatistics().getSum();
Integer[] integerArray = {1,
1.使用场景
比如评论系统中,我们有多项打分,我们要同时对多个评分项求平均值,这个在数据库可以直接通过SQL也可以解决,在java 8后提供的Stream API也能解决这种求值问题,不适合数据量太大的统计。
2.数据对象
* 用户评分实体
public class UserCommentDTO implements Serializable {
* 详...
public static void main(String[] args) {
// 创建一个Map对象
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 使用Stream遍历Map的键值对
map.entrySet().stream()
.forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()));
// 使用Stream遍历Map的键
map.keySet().stream()
.forEach(key -> System.out.println("Key: " + key));
// 使用Stream遍历Map的值
map.values().stream()
.forEach(value -> System.out.println("Value: " + value));
上述代码中,我们创建了一个包含键值对的Map对象,并使用Stream来遍历该Map。我们分别使用`entrySet()`方法获取键值对的Set视图,`keySet()`方法获取键的Set视图,以及`values()`方法获取值的集合视图,并使用Stream对它们进行遍历。在遍历过程中,我们使用了Lambda表达式来输出键和值。