liststream的collect方法案例详解
Java 8 中的 Stream API 提供了一种方便的方法来操作集合和数组。在流中,我们可以使用各种操作来转换、过滤和排序元素。但是,最终我们通常需要将结果收集回集合或数组中。这就是 collect() 方法的作用。
collect() 方法是一个终止操作,用于将流中的元素收集到一个集合或数组中。在 collect() 方法中,我们需要提供一个 Collector 对象,该对象定义了如何收集元素。Collector 接口定义了几个方法来实现此目的。
下面是一个使用 collect() 方法的示例,将字符串列表中的所有元素转换为大写字母,并将结果收集回一个新的列表中。
List<String> words = Arrays.asList("hello", "world", "java", "stream", "api");
List<String> result = words.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(result);
输出结果:
[HELLO, WORLD, JAVA, STREAM, API]
在这个例子中,我们首先使用 stream() 方法从字符串列表中创建一个流。然后,我们使用 map() 方法将每个元素转换为大写字母。最后,我们使用 collect() 方法将结果收集回一个新的列表中。在 collect() 方法中,我们使用 Collectors.toList() 静态方法来创建一个 Collector 对象,该对象定义了如何收集元素。
除了 toList() 方法之外,Collectors 类还提供了许多其他的静态方法来创建 Collector 对象。例如,我们可以使用 toSet() 方法来将元素收集到一个集合中,使用 toMap() 方法将元素收集到一个 Map 中,等等。
下面是一个使用 toMap() 方法的示例,将字符串列表中的每个元素转换为大写字母,并将其作为键存储在 Map 中,与其原始值一起作为值存储。
List<String> words = Arrays.asList("hello", "world", "java", "stream", "api");
Map<String, String> result = words.stream()
.collect(Collectors.toMap(String::toUpperCase, Function.identity()));
System.out.println(result);
输出结果:
{JAVA=java, HELLO=hello, STREAM=stream, API=api, WORLD=world}
在这个例子中,我们使用 toMap() 方法将字符串列表中的每个元素转换为大写字母,并将其作为键存储在 Map 中。我们还使用 Function.identity() 方法作为值的映射函数,该函数返回元素本身。这将导致 Map 中的每个条目都包含一个大写字母键和与其原始值相同的值
原文地址: https://www.cveoy.top/t/topic/fijm 著作权归作者所有。请勿转载和采集!