java map与stream函数

map函数

Map 函数是 Java 中的一个常用函数,它可以对集合中的每个元素执行一个操作,并返回一个新的集合。

Java 中的 Map 函数有很多实现,例如:

  • 使用 Java 8 的 Stream API 和 Lambda 表达式
  • 使用 Apache Commons Collections 的 CollectionUtils.collect() 方法
  • 使用 Guava 的 Iterables.transform() 方法

下面是使用 Java 8 的 Stream API 和 Lambda 表达式实现 Map 函数的示例代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().map((x) -> x * x).collect(Collectors.toList());

在这个例子中,我们将 list 集合转换为一个 Stream,然后使用 map() 方法对流中的每个元素执行一个操作,即将每个元素的平方计算出来。最后,使用 collect() 方法将流中的所有元素收集到一个 List 中,并将这个 List 赋值给 result 变量。

最终,result 变量中包含了所有平方后的数字,即:[1, 4, 9, 16, 25]。

stream函数

Stream 是 Java 8 中引入的一种数据处理模式,它可以帮助我们对集合进行高效的函数式编程。

使用 Stream 的优势有很多,例如:

  • 可以使用 Stream 的 map()、filter() 和 reduce() 等函数对集合中的数据进行转换、过滤和聚合。
  • Stream 支持并行操作,可以利用多核处理器的优势,提升程序执行效率。
  • Stream 的函数式编程风格更加简洁、优雅,可以更方便地维护代码。

下面是使用 Stream 对集合进行过滤、转换和聚合的示例代码:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// 过滤出所有偶数
List<Integer> evenNumbers = list.stream()
.filter((x) -> x % 2 == 0)
.collect(Collectors.toList());

// 将所有数字的平方计算出来
List<Integer> squares = list.stream()
.map((x) -> x * x)
.collect(Collectors.toList());

// 计算所有数字的和
int sum = list.stream()
.reduce(0, (x, y) -> x + y);

// 计算所有数字的平均值
double average = list.stream()
.mapToInt((x) -> x)
.average()
.getAsDouble();

// 找出最大的数字
int max = list.stream()
.max(Integer::compareTo)
.get();

// 找出最小的数字
int min = list.stream()
.min(Integer::compareTo)
.get();

猜你喜欢

转载自blog.csdn.net/m0_61594817/article/details/128489594