Java 中的 mapToInt()

10 Sept 2024 | 5 分钟阅读

在 Java 中,Stream API 负责存储 **mapToInt()** 方法,该方法在 Java 8 版本中引入。**mapToInt()** 方法的主要目的是用于将流中的元素转换为 **IntStream**。

让我们在接下来的段落中详细了解 mapToInt() 方法。

Java Stream API 的 mapToInt()

在 Java 中,当用户处理的是**原始 int** 值而不是常规对象时,mapToInt() 方法会得到主要利用。换句话说,mapToInt() 方法主要用于对流中的每个单独元素应用映射函数,并将它们转换为 **int** 值。

mapToInt() 方法包含两个方法签名,将在后面的段落中讨论。用户负责指定映射函数,该函数必须是 **ToIntFunction< super T >** 类型。在前面提到的语法中,**T** 用于表示原始流中元素的类型。mapToInt() 方法生成的结果将是 **IntStream**,其中存储 **int** 值。

在 Java 中使用 mapToInt() 方法的一个主要优势是它提供了潜在的性能改进。用户在使用原始数据类型时可以实现高效的内存使用。此外,与处理对象流相比,它提供了更高的性能。当用户处理大型数据集或性能敏感型应用程序时,使用 mapToInt() 方法可能会特别有益。

例如,在数学或统计相关的操作中,使用 mapToInt() 可以被证明是高效且有用的。此外,Java 为生成的 **IntStream** 提供了各种类型的方法,可以用于定制和操作 **int** 值。提供的一些方法或操作包括 sum、max、min、average 等。

让我们通过一个 Java 示例程序来详细了解 **mapToInt()** 方法。

文件名: MapToIntExample.java

输出

Original List of Students:
CollegeStudent{student_name='Eshwar', student_age=20, student_subjects=[Math, Physics]}
CollegeStudent{student_name='Sreeram', student_age=22, student_subjects=[Computer Science, Java]}
CollegeStudent{student_name='Arti', student_age=21, student_subjects=[English, History]}
CollegeStudent{student_name='Meghana', student_age=23, student_subjects=[Chemistry, Biology]}

Ages of Students using mapToInt:
20 22 21 23

示例 2

文件名: MapToIntExample1.java

输出

Original List of Employees:
OfficeEmployee{EmployeeName=Eshwar, EmployeeSalary=50000}
OfficeEmployee{EmployeeName='Sreeram', EmployeeSalary=60000}
OfficeEmployee{EmployeeName='Arti', EmployeeSalary=75000}
OfficeEmployee{EmployeeName='Meghana', EmployeeSalary=90000}

Bonus Amounts using mapToInt:
5000 6000 7500 9000

Salary Ranges using mapToInt:
1 2 2 3