📜  Java中的流式 mapToLong() 和示例(1)

📅  最后修改于: 2023-12-03 15:16:33.853000             🧑  作者: Mango

Java中的流式 mapToLong() 和示例

在Java 8中,引入了流式编程的概念,其中有一个非常有用的方法就是mapToLong()。该方法可以将一个Stream对象中的每个元素映射为一个long型数据,并返回一个新的LongStream对象。

语法
LongStream mapToLong(ToLongFunction<? super T> mapper)

参数:

  • mapper:一个函数式接口,用于将T类型的元素映射为long类型。

返回值:

一个新的LongStream对象,其中包含了将原Stream对象中每个元素映射为long类型后的结果。

示例

假设我们有一个Student类,表示学生信息,其中包含学生姓名和成绩两个属性:

class Student {
    String name;
    int score;
 
    public Student(String name, int score){
        this.name = name;
        this.score = score;
    }
 
    public String getName() {
        return name;
    }
 
    public int getScore() {
        return score;
    }
}

现在我们有一个List列表,需要将其中每个学生的成绩映射为long型数据,并计算总分数。我们可以使用mapToLong()方法来完成这个任务:

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
 
        List<Student> students = new ArrayList<>();
        students.add(new Student("张三", 80));
        students.add(new Student("李四", 90));
        students.add(new Student("王五", 70));
 
        long totalScore = students.stream()
                                  .mapToLong(Student::getScore)
                                  .sum();
        System.out.println("总分数为:" + totalScore);
    }
}

输出结果为:

总分数为:240

在上述示例中,我们首先使用stream()方法将List列表转换为一个Stream对象。接着,我们使用mapToLong()方法将每个学生的成绩映射为long型数据。最后,我们调用sum()方法计算总分数。

总结

mapToLong()方法是一个非常有用的方法,它可以帮助我们将Stream对象中的元素映射为long型数据,并返回一个新的LongStream对象。使用该方法,我们可以非常方便地进行数值计算。