import java.util.*;
import java.util.stream.Collectors;
public class JavaCollectorsExample {
public static void main(String[] args) {
// 创建一个列表,包含一些字符串元素
List<String> stringList = Arrays.asList("apple", "banana", "orange", "grape", "melon");
// 使用 Collectors 来对列表进行操作
// 1. 将列表转换为集合
Set<String> stringSet = stringList.stream().collect(Collectors.toSet());
System.out.println("Convert list to set: " + stringSet);
// 2. 统计每个单词的长度,并将结果收集到一个映射中
Map<String, Integer> wordLengthMap = stringList.stream()
.collect(Collectors.toMap(word -> word, String::length));
System.out.println("Word length map: " + wordLengthMap);
// 3. 计算列表中所有单词的总长度
int totalLength = stringList.stream().collect(Collectors.summingInt(String::length));
System.out.println("Total length of all words: " + totalLength);
// 4. 将列表中的所有单词连接成一个字符串
String concatenatedString = stringList.stream().collect(Collectors.joining(", "));
System.out.println("Concatenated string: " + concatenatedString);
// 5. 对列表进行分组,根据单词的第一个字母进行分组
Map<Character, List<String>> groupedByFirstLetter = stringList.stream()
.collect(Collectors.groupingBy(word -> word.charAt(0)));
System.out.println("Grouped by first letter: " + groupedByFirstLetter);
}
}
Collectors.toSet()
方法可以将流中的元素收集到一个 Set
中,从而去除重复项。Collectors.toMap()
方法将每个单词作为键,单词的长度作为值,构建一个映射。Collectors.summingInt()
方法可以方便地对流中的元素进行求和操作。Collectors.joining()
方法可以将流中的元素连接成一个字符串,并可以指定分隔符。Collectors.groupingBy()
方法可以根据某个条件(如单词的第一个字母)对流中的元素进行分组。Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站